Java 的字符串池探索
考虑以下代码:
String first = "abc"; String second = new String("abc");
问题 1:字符串池与 New 一起使用关键字
当Java使用new String()构造函数初始化第二个时,它是否会创建一个全新的abc String实例?
答案:是的,使用new确保创建一个新的 String 对象。
问题 2:堆和字符串池存储
新创建的String实例(通过new关键字)会存储在常规堆还是字符串池中?
答案:所有对象,包括 String 对象,驻留在堆上。字符串池不是一个单独的内存区域;这是一种类似缓存的机制。
问题 3:字符串池计数
字符串池中有多少个“abc”字符串的实例?
答案:通常,当您创建不可变字符串文字时,Java 会自动放置它们在字符串池中。然而,在这个特定场景中:
因此,在这种情况下,只需要一个 "abc" 字符串实例将存在于字符串池中。
以上是Java 的字符串池如何处理使用 new 关键字创建的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!