本文主要是介绍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#intern结果对比源码测试的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!