如何将字符串对象转换为字符串池对象?

时间:2014-06-12 07:07:22

标签: java string

我有一个String对象为new String("abc");我将如何将该对象转换为String pool Object

3 个答案:

答案 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