首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中,当字符串非常大并且不再使用时,使用new String()而不是双引号是否有效?

在Java中,当字符串非常大并且不再使用时,使用new String()而不是双引号是否有效?
EN

Stack Overflow用户
提问于 2021-06-10 19:23:28
回答 1查看 76关注 0票数 0

我有这么多的用例,我必须初始化一个大的字符串,而不是在其他地方使用相同的字符串。

代码语言:javascript
复制
//Code-1
public class Engine{
public void run(){
    String q = "fjfjljkljflajlfjalkjdfkljaflkjdllllllllllllllsjfkjdaljdfkdjfnvnvnrrukvnfknv";
    //do something
   }
}

我很少调用这个run方法。

在代码1中,字符串fjfjljkljflaj.....将被添加到字符串池中,并且永远不会被GC收集。所以我想用new运算符进行初始化。

代码语言:javascript
复制
//Code-2
public class Engine{
public void run(){
    String q = new String("fjfjljkljflajlfjalkjdfkljaflkjdllllllllllllllsjfkjdaljdfkdjfnvnvnrru");
    //do something
   }
}

第二个代码会节省一些内存吗?还是会有其他因素需要考虑才能决定哪一个是有效的?

EN

回答 1

Stack Overflow用户

发布于 2021-07-29 17:00:23

第一件事--如果我们使用intern new String()对象创建,则除非调用()方法,否则不会在文字池中创建常量。

在优化方面,我们应该尽可能使用字符串文字表示法。它更容易阅读,也给了编译器一个优化我们代码的机会。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67920181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档