如何解决在 Java 中,当字符串非常大并且不再使用时,使用 new String() 而不是双引号是否有效?
我有很多用例,我必须初始化一个大字符串,而不能在其他任何地方使用相同的字符串。
//Code-1
public class Engine{
public void run(){
String q = "fjfjljkljflajlfjalkjdfkljaflkjdllllllllllllllsjfkjdaljdfkdjfnvnvnrrukvnfknv";
//do something
}
}
在 Code-1 中,字符串 fjfjljkljflaj.....
将被添加到字符串池中,并且永远不会被 GC 收集。所以我想用 new 运算符初始化。
//Code-2
public class Engine{
public void run(){
String q = new String("fjfjljkljflajlfjalkjdfkljaflkjdllllllllllllllsjfkjdaljdfkdjfnvnvnrru");
//do something
}
}
第二个代码会节省一些内存还是需要考虑其他因素来决定哪个代码有效?
解决方法
第一件事 -- 如果我们使用 new String() 对象创建,除非我们调用 intern() 方法,否则不会在文字池中创建常量。
在优化方面,我们应该尽可能使用字符串文字表示法。它更易于阅读,并且让编译器有机会优化我们的代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。