当前位置: 首页 > 面试题库 >

Java,将null分配给对象和just声明有什么区别

杨学真
2023-03-14
问题内容

之间有什么区别:

  • Object o = null; 和
  • Object o; (只是声明)

有人可以回答我吗?


问题答案:

这取决于您声明变量的范围。例如,在这种情况下, 局部变量 没有default values,您将不得不手动分配 null
,在这种情况下,由于实例变量获取默认值,因此在 实例变量的 情况 分配null是多余的。

public class Test {
    Object propertyObj1;
    Object propertyObj2 = null; // assigning null is redundant here as instance vars get default values

    public void method() {
        Object localVariableObj1;
        localVariableObj1.getClass(); // illegal, a compiler error comes up as local vars don't get default values

        Object localVariableObj2 = null;
        localVariableObj2.getClass(); // no compiler error as localVariableObj2 has been set to null

        propertyObj1.getClass(); // no compiler error
        propertyObj2.getClass(); // no compiler error
    }
}


 类似资料:
  • 问题内容: 我多次听说,在实例化对象时应该执行以下操作: “接口”名称=新的“类”(); 例如,针对实现的类链表: 实现许多接口,包括队列,双端队列等。上面的代码和 要么 为什么必须同时指定两次类型?似乎多余,但oracledocs似乎没有提及。 问题答案: 在Java 7中是多余的。可以将其重写为。 你想写类似的原因: 如果您改变主意,则可以为您提供以后更改数据收集的自由。这样,您的代码将更加灵

  • 问题内容: 为什么在JavaScript中被视为? 正在检查 与…相同 ? 并且: 和之间有什么区别? 问题答案: (name is undefined) You: What is name? () JavaScript:* ?什么啊 我不知道你在说什么您以前从未提到过。您是否在(客户端)看到其他脚本语言? You: What is name? JavaScript: I don’t know.。

  • 问题内容: 我对这两个词感到非常困惑。我检查了stackoverflow,对于C ++有一个类似的问题,但对于Java没有。 有人可以解释一下Java的两个术语之间的区别吗? 问题答案: 概念上的区别很简单: 声明 :您 声明的 是某些东西,例如类,函数或变量。你不说任何事情 什么 是类或函数的样子,你刚才说,它的存在。 定义 :您 定义 某种事物的实现方式,例如类,函数或变量,即您说的 是 实际

  • 问题内容: 我注意到,如果不上课之前写的话,它的工作原理就和一样。我不明白为什么会这样?它应该显示一个错误,当我不声明一个类的,或。但这很好。是什么原因? 问题答案: ,并且是访问修饰符。Public表示可以由任何类,由子类保护,由类本身私有的任何类访问主题,没有修饰符表示“受包保护”,因此可以从同一包中的类访问该主题。 主题是类,方法,成员变量。

  • 问题内容: 我注意到有些人喜欢将对象声明为它实现的接口之一, 即使在变量的范围内,也不必将其视为接口 ,例如,没有期望接口的外部API。 例如: 或者你可以做 并避免完全导入。 与类本身(第二个)相反,通过接口(上面的第一个)声明它有什么好处? 谢谢 问题答案: 如果以后不使用该变量,则没有优点/缺点。使用接口而不是对象的原因是为了提供更大的灵活性,但是,如果不使用该变量,则与性能方面没有什么区别

  • %1有编译器错误,而%2是合法的。 为什么变量声明的类型必须与我们传递给对象类型的类型匹配(不允许派生类型)?我使用的数组如下所示,这是完全正确的: 有人能告诉我为什么集合必须声明为条件2吗?谢谢