Ano*_*384 6 java memory garbage
我开始学习一些Java,我已经阅读了很多关于如何通过JVM分配内存以及因此如何使用垃圾收集器释放内存的方法.
我无法找到的一件事是,如果我创建两个完全相同的新对象,它们会引用内存中的相同位置?与String Pool的工作方式类似.
我无法找到的一件事是,如果我创建两个完全相同的新对象,它们会引用内存中的相同位置?与String Pool的工作方式类似
答案是否定的:
new关键字创建两个对象,它们将永远不会指向相同的内存位置.String对象.如果String使用创建两个对象new,则对这些对象的两个引用将指向两个不同的内存位置.String文字是一个特例.一个String文字存储在String文字池.因此String,对String文字的两个引用将始终指向相同的内存位置.Integer类.例如,Integer a = 100; Integer b = 100; System.out.println(a==b);这打印为true,因为IntegerJVM缓存了介于-128和127之间的值.(-128到127之间的值是由所有JVM实现缓存.这是高达单个JVM实现缓存值超出此范围)