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

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

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

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

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

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Java中直接赋值和构造方法赋值有什么区别》
文章链接:https://zhuji.vsping.com/4096.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。