Java中直接赋值和构造方法赋值有什么区别

在Java中,直接赋值只会产生一个实例化对象,并且可以自动保存到对象池中,以实现对象的复用;而构造方法赋值会产生两个实例化的对象,并且不会自动入池,无法实现对象的重用。

1.直接赋值:先在字符串池中寻找是否存在和这个值相同的String对象。如果没有,则在字符串池中创建这个对象,然后返回这个对象的引用;若寻找成功,则直接返回这个引用。

2.构造方法赋值:堆允许程序在运行时动态地申请某个大小的内存空间。虽然两个对象指向同一块内容,但是他们本身是两个不同对象,只是地址相同。

直接赋值只会开辟一块堆内存空间,并且该字符串对象可以自动保存在对象池中以供下次使用;而如果使用构造方法赋值,就会开辟两块堆内存空间,并且其中一块堆内存将成为垃圾空间,此外也会对字符串共享产生问题。

未经允许不得转载:国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码 » Java中直接赋值和构造方法赋值有什么区别