加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 每次我使用String时,它是否会创建一个新的String对象?

发布时间:2020-12-15 04:21:05 所属栏目:Java 来源:网络整理
导读:假设我需要从 Java hashmap迭代地检索相同键的值. for(int i=0; iINTEGER.MAX; i++) map.get("KEY"); 在这种情况下,每次调用map.get(“KEY”)时都会创建“KEY”字符串吗?我想知道是否总是更好地拥有一个String常量,或者无关紧要. 解决方法 不会.字符串常量
假设我需要从 Java hashmap迭代地检索相同键的值.

for(int i=0; i<INTEGER.MAX; i++)   
          map.get("KEY");

在这种情况下,每次调用map.get(“KEY”)时都会创建“KEY”字符串吗?我想知道是否总是更好地拥有一个String常量,或者无关紧要.

解决方法

不会.字符串常量会自动实现,因此任何相同的字符串文字都会引用内存中的相同对象.

关于此的更多信息:http://www.xyzws.com/Javafaq/what-is-string-literal-pool/3

一个例子:

String s1 = "Test";
String s2 = "Test";
String s3 = new String("Test");
s1 == s2;//Evaluates to true,because they are the same object (both created with string literals)
s1 == s3;//Evaluates to false,because they are different objects containing identical data

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读