【问题标题】:Regarding intern() method in String [duplicate]关于String中的intern()方法[重复]
【发布时间】:2014-07-12 01:49:37
【问题描述】:
String s1=new String("Raam");
String s2=s1.concat("Kumar");
String s3=s2.intern();
String s4="RaamKumar";
System.out.println("s3==s4..."+(s3==s4)); //true

intern() 方法检查特定对象是否存在于字符串常量池中。否则它将在字符串常量池中创建该对象。但是Stringintern()有什么用呢。在哪个场景下有用呢?

【问题讨论】:

  • 如果你不执行s2.intern() 会发生什么,它不会自动被拘留吗?
  • @FarhadAliNoo 实习只对源代码中存在的字符串文字自动完成

标签: java string


【解决方案1】:

它几乎从来没有用过。根据String 类文档,String 文字总是被实习的。也就是说,如果我说

String a = "A String";
String b = "A String";

,单个对象将被放入堆中,ab 将指向同一个引用。

所以,我会说这是一种语法糖,不需要任何对 intern() 的调用。

【讨论】:

  • 问题是什么时候有用,什么时候没用。
猜你喜欢
  • 1970-01-01
  • 2015-05-27
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-25
  • 2017-08-15
  • 1970-01-01
相关资源
最近更新 更多