char[] test={'k','v','i','l','l'};
String s1=new String(test);
System.out.println(s1==s1.intern());
这段代码的结果是true,求大神讲解下原理~~为什么结果是true...百思不得其解....
**问题已经解决了:
简单说下原理,jdk6最后的结果是false,jdk7以上的结果是true,原因是
jdk底层实现发生了变化,之前要分配两个对象,现在改成只要一个,优化后节约空间**
char[] test={'k','v','i','l','l'};
String s1=new String(test);
System.out.println(s1==s1.intern());
这段代码的结果是true,求大神讲解下原理~~为什么结果是true...百思不得其解....
**问题已经解决了:
简单说下原理,jdk6最后的结果是false,jdk7以上的结果是true,原因是
jdk底层实现发生了变化,之前要分配两个对象,现在改成只要一个,优化后节约空间**