小编Abh*_*mar的帖子

为什么intern()不能与文字'java'一起使用?

我试过下面的代码:

public class TestIntern {
  public static void main(String[] args) {
   char[] c1={'a','b','h','i'};
   String s1 = new String(c1);
   s1.intern();
   String s2="abhi";
   System.out.println(s1==s2);//true

   char[] c2={'j','a','v','a'};
   String sj1 = new String(c2);
   sj1.intern();
   String sj2="java";
   System.out.println(sj1==sj2);//false

   char[] c3={'J','A','V','A'};
   String tj1 = new String(c3);
   tj1.intern();
   String tj2="JAVA";
   System.out.println(tj1==tj2);//true
  }
}
Run Code Online (Sandbox Code Playgroud)

我尝试了很多不同的文字.

任何人都可以解释为什么intern()不能按字面意思的方式工作"java"?为什么上面的参考比较要评估true,除非文字是"java"

java string string-interning

12
推荐指数
1
解决办法
303
查看次数

标签 统计

java ×1

string ×1

string-interning ×1