Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么条件导致对象实例化返回null?_Java_Constructor_Null_Return Value_New Operator - Fatal编程技术网

Java 什么条件导致对象实例化返回null?

Java 什么条件导致对象实例化返回null?,java,constructor,null,return-value,new-operator,Java,Constructor,Null,Return Value,New Operator,下一行是否可能返回null MyClass obj = new MyClass(); 如果是这样,什么条件会导致返回值为null?假设虚拟机正常运行,new不可能返回null 发件人: 类实例创建表达式的值是对指定类的新创建对象的引用。每次计算表达式时,都会创建一个新对象 在我看来这是不可能的。如果Java内存不足,就会出现异常。静态初始化错误 像 如果不指定上下文,就不能提问。在应用程序服务器中,上面的代码是test=null的Myclass2。 为什么?因为错误通常被应用服务器捕获。简短回

下一行是否可能返回null

MyClass obj = new MyClass();

如果是这样,什么条件会导致返回值为null?

假设虚拟机正常运行,
new
不可能返回null

发件人:

类实例创建表达式的值是对指定类的新创建对象的引用。每次计算表达式时,都会创建一个新对象


在我看来这是不可能的。如果Java内存不足,就会出现异常。

静态初始化错误

如果不指定上下文,就不能提问。在应用程序服务器中,上面的代码是test=null的Myclass2。 为什么?因为错误通常被应用服务器捕获。

简短回答-否


但是您可以从构造函数中抛出异常,在这种情况下,如果
obj
最初分配给
null
,它将保持
null

不,这不能返回null。但是,它可能会引发异常,并且取决于您如何处理该异常,
obj
引用在异常处理后可能仍然为空(如果您离开代码块,例如,通过不捕获异常,
obj
引用将不再存在,因此这无关紧要)


构造函数中出现异常的原因是多方面的,例如,如果内存不足(在这种情况下,会出现
OutOfMemoryError
)或者,如果您访问的未初始化字段仍然为空,并且会导致
NullPointerException

,您可以用代码扩展答案吗?我很好奇是什么提示了这个问题。@KevinD这听起来像Java认证考试问题。
public class MyClass {

static {
  throw new Error("Error");
}

}

public class MyClass2 {

  static MyClass test=new MyClass();

}