如果我从方法调用或
字符串只在类加载期间添加到池中吗?
StringBuilder.toString()
中获取一个字符串对象,这个字符串是否会被添加到字符串池中?字符串只在类加载期间添加到池中吗?
StringBuilder.toString()
中获取一个字符串对象,这个字符串是否会被添加到字符串池中?当我从一个方法调用或者StringBuilder.toString()中得到一个字符串对象时,这个字符串会被添加到String池中吗?
StringBuilder.toString()
--> (创建并)返回一个在堆上的字符串对象(不在String常量池中)。
如果你在你的方法中使用return "hi"
,那么String常量池中的"hi"的引用将会被返回。
可以通过调用intern()方法在运行时将字符串添加到String常量池中。
您可以在String
对象上调用intern()
。如果该字符串对象尚未在池中,则这将将其置于池中并返回对池字符串的引用。(如果它已经在池中,则仅返回对已经存在的对象的引用)。