java - 在 Java 中创建对象的最佳方式以及什么时候会出现内存泄漏

标签 java object

Class A {
A();
}

第一种方法:

A a = null;

第二种方式:

A a = new A();

这两个对象声明有什么区别?是否存在最终的内存泄漏问题?

最佳答案

What is the difference between these two object declarations?

它们并不相同,因为您试图比较两者。

第一种情况是您没有创建 A 的任何对象,只是将其初始化为 null。

稍后您将使用 newA 创建一个对象。谈到内存方面,这里没有这样的泄漏。

当您没有引用对象时,垃圾收集器会执行这些操作。

//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/

相关文章:

java - 同步关键字是否会阻止线程在锁定时使用自己的变量?

java - 唯一的字数组

Javascript:对象内的数组

javascript - jQuery爬虫大对象/$.each/Ajax IN然后Ajax OU

java - 客户端-服务器连接

java - 为什么创建 OkHttpClient 实例需要这么长时间?

java - 如何保存request.getAttribute值?

javascript - 无法在 JavaScript 中复制对象属性

php - JSON 和 PHP 数组

javascript - 将单个对象转换为对象数组