在运行时可以将字符串添加到字符串池吗?

gur*_*372 2 java heap-memory string-pool

如果我从方法调用或从中获取字符串对象StringBuilder.toString(),该字符串是否会添加到字符串池中?

String类是否仅在类加载期间添加到池中?

The*_*ind 8

我从方法调用或StringBuilder.toString()获取字符串对象,此字符串是否被添加到字符串池?

StringBuilder.toString() - >(created和)返回堆上的String(不在String常量池上).

如果你return "hi"在你的方法中,那么将返回String常量池的hi的引用.

可以在运行时通过调用它们上的intern()将字符串添加到String常量池中.


小智 5

你可以打电话intern()给一个String对象.这将把String对象放在池中(如果它尚不存在),并返回对池化字符串的引用.(如果它已经在池中,它只返回对已存在的对象的引用).