小编Pat*_*xis的帖子

带有 String 构造函数和 intern 函数的 Java 字符串池

最近学习了Java String Pool,有一些不太明白的地方。

使用赋值运算符时,如果字符串池中尚不存在新字符串,则会在该字符串池中创建一个新字符串。

String a = "foo"; // Creates a new string in the String Pool
String b = "foo"; // Refers to the already existing string in the String Pool
Run Code Online (Sandbox Code Playgroud)

使用 String 构造函数时,我知道无论 String Pool 的状态如何,都会在 String Pool 之外的堆中创建一个新字符串。

String c = new String("foo"); // Creates a new string in the heap
Run Code Online (Sandbox Code Playgroud)

我读的地方,使用构造函数,即使,字符串池中使用。它将字符串插入到字符串池堆中。

String d = new String("bar"); // Creates a new string in the String Pool and in the heap
Run Code Online (Sandbox Code Playgroud)

我没有找到关于此的任何进一步信息,但我想知道这是否属实。

如果这确实是真的,那么 - …

java string garbage-collection string-interning string-pool

0
推荐指数
1
解决办法
188
查看次数