可以在 运行 时间内将字符串添加到字符串池吗?
Can a String be added to string pool during run-time?
如果我从方法调用或 StringBuilder.toString()
获得一个字符串对象,这个字符串是否被添加到字符串池中?
是否仅在 class 加载期间将字符串添加到池中?
我从方法调用或 StringBuilder.toString() 中得到一个字符串对象,这个字符串是否被添加到字符串池中?
StringBuilder.toString()
--> (creates and ) returns 堆上的字符串(不在字符串常量池上)。
如果你在你的方法中做return "hi"
,那么字符串常量池的 hi's 引用将被返回。
可以在运行时通过调用 intern() 将字符串添加到字符串常量池中。
您可以在 String
对象上调用 intern()
。这会将 String 对象放入池中(如果它尚不存在),并且 return 是对池中字符串的引用。 (如果它已经在池中,它只是 return 对已经存在的对象的引用)。
如果我从方法调用或 StringBuilder.toString()
获得一个字符串对象,这个字符串是否被添加到字符串池中?
是否仅在 class 加载期间将字符串添加到池中?
我从方法调用或 StringBuilder.toString() 中得到一个字符串对象,这个字符串是否被添加到字符串池中?
StringBuilder.toString()
--> (creates and ) returns 堆上的字符串(不在字符串常量池上)。
如果你在你的方法中做return "hi"
,那么字符串常量池的 hi's 引用将被返回。
可以在运行时通过调用 intern() 将字符串添加到字符串常量池中。
您可以在 String
对象上调用 intern()
。这会将 String 对象放入池中(如果它尚不存在),并且 return 是对池中字符串的引用。 (如果它已经在池中,它只是 return 对已经存在的对象的引用)。