我有一个String对象为new String("abc");
我将如何将该对象转换为String pool Object
答案 0 :(得分:3)
String str= new String("abc").intern() // calling intern() will add the String object to the String pool.
答案 1 :(得分:1)
如果你的对象真的是new String("abc")
,那么你应该只使用"abc"
而不是创建一个新字符串并实习这个字符串。无论如何"abc"
都被实习,因为所有字符串文字都是。
即,下面的布尔操作将为真
"abc" == new String("abc").intern()
答案 2 :(得分:0)
好吧,你没有将String转换为StringPool。 StringPool是由JVM管理的字符串的集合。 但是,您可以通过请求VM使用String对象的intern()方法(如果它尚未创建为文本)来请求包含在池中的字符串(否则它已经存在)
String test= "test".append("Case").append("String");
test.intern(); //string "testCaseString" will be interned
String check= "InternString";
check.intern(); //redundant as the string was already interned in the above creation statement