当使用new String("Hello World")时,实际上会创建两个String对象

  • 首先,在堆内存中创建一个新的String对象作为传入的字符串参数,存储字符串的Hello World值,并且存储在常量池中复用
  • 然后,使用new String构造器创建的第二个String对象:这个对象是独立的,存储在堆内存中,不会复用字符串常量池中的字符串

所以,new String("Hello World")操作实际上创建了两个String对象,两个都在内存堆中,其中作为参数的Hello World缓存在字符串常量池

这个例子也说明了使用双引号创建的字符串可以通过字符串常量池复用,具有更好的效率

最后修改:2023 年 07 月 31 日
如果觉得我的文章对你有用,请随意赞赏