
前言
String.intern()方法是一个Native方法,它的作用是:如果字符串常量池中已经包含了一个相同String
对象的字符串,则返回这个字符串的引用,如果不包含,则将此String的字符串添加到常量池,并返回此String
对象的引用。
需要注意的是在jdk1.6和1.7中两种方法表现不同。在jdk1.6中,intern()方法会把字符串常量复制到永
久代,而在1.7中则是建立对首次出现实例的引用。
案例
1、下面这两个字符串是相等的,因为都是对常量区字符串的引用。
String s = "test";
String t = "test";
System.out.println(s == t);
2、在jdk1.7中,a和b是相等的,都是对"xy"这个字符串的引用。
String a = new StringBuilder().append("x").append("y").toString();
a.intern();
String b = "xy";
System.out.println(a == b);




近期评论