声明String s = new String(“abc”)。intern(); over String s =“abc”(反之亦然)

时间:2016-06-13 16:31:43

标签: java string memory pool

据我了解 1)String s =“abc”;在字符串池中创建“abc”和
2)String s = new String(“abc”)。intern();无论“否”中是否存在“abc”,都会返回字符串池引用。

我的问题是

1)超过2)(或反之亦然)的优点是什么,因为它们都返回池中的引用。 首选哪种语法?

2)无论池中是否存在“abc”,对象最初是否会在堆中创建然后丢失? (符合gc条件)

1 个答案:

答案 0 :(得分:3)

这是最简单和最快的

 String s = "abc";

使用new String("abc").intern()不仅速度慢,而且更加复杂和令人困惑。

简而言之,不要让代码变得比需要的更复杂。