String s1 = "你好,Java自由人";
String s2 = "你好," + "Java自由人";
System.out.println(s1==s2);
System.out.println(s1.intern()==s2.intern());
这段代码将打印两个true,也就是说字符串s1和s2是共享同一个实例。不过前提是尽管使用了表达式,但是表达式中必须都是常量。
当然我现在还想不出这个方法到底有什么用,不过算是对Java虚拟机内部组织结构的一些了解,同时了解这个处理机制也可以让我们在用到字符串常量的时候了解如何节省这些字符串所占用的内存。
很奇怪的是intern这个方法居然在JBuilder 2005上被告知是一个未定义的方法,在Eclipse中表现很正常。
本文地址:http://com.8s8s.com/it/it12154.htm