Class A {
A();
}
第一种方法:
A a = null;
第二种方式:
A a = new A();
这两个对象声明有什么区别?是否存在最终的内存泄漏问题?
最佳答案
What is the difference between these two object declarations?
它们并不相同,因为您试图比较两者。
第一种情况是您没有创建 A
的任何对象,只是将其初始化为 null。
稍后您将使用 new
为 A
创建一个对象。谈到内存方面,这里没有这样的泄漏。
当您没有引用对象时,垃圾收集器会执行这些操作。
//code
A a = null;
//codes
a.something() // NullpointerException
case 2
//code
A a = null;
//codes
a = new A();
a.something() // No NullpointerException
关于java - 在 Java 中创建对象的最佳方式以及什么时候会出现内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20824943/