编程语言
首页 > 编程语言> > String#intern结果对比源码测试

String#intern结果对比源码测试

作者:互联网

/**
 *返回字符串对象的规范表示。 最初为空的字符串池由String类String 。 
 *当调用intern方法时,如果池已经包含与equals(Object)方法确定的相当于此String对象的字符串,则返回来自池的字符串。否则,此String对象将添加到池中,并返回对此String对象的引用。
 *由此可见,对于任何两个字符串s和t , s.intern() == t.intern()是true当且仅当s.equals(t)是true 。
 */
// 如果池已经包含与equals(Object)方法确定的相当于此String对象的字符串,则返回来自池的字符串
String bb = "b";
String b = new String("b");
String bbb = b.intern();
// 93122545
System.err.println(System.identityHashCode(b));
// 2083562754
System.err.println(System.identityHashCode(bb));
// 2083562754
System.err.println(System.identityHashCode(bbb));

// 否则,此String对象将添加到池中,并返回对此String对象的引用。
String a = new String("a");
String aa = a.intern();
String aaa = "a";
// 488970385
System.err.println(System.identityHashCode(a));
// 1209271652
System.err.println(System.identityHashCode(aa));
// 1209271652
System.err.println(System.identityHashCode(aaa));

标签:String,err,System,intern,源码,println,identityHashCode
来源: https://blog.csdn.net/love__guo/article/details/121235267