<pre name="code" class="java">package com.ckw.mianshi;
/**
* 测试String类的intern方法
* @author Administrator
*intern():返回一个字符串,内容与此字符串相同,但它保证来自字符串池中。
*/
public class StringOfIntern {
public static void main(String[] args) {
/**
* 例1
*/
String s0="my";
String s1=new String("my");
String s2=new String("my");
System.out.println(s0==s1);
s1.intern();
s2=s2.intern();
System.out.println(s0==s1); //虽然执行了s1.intern(),但它的返回值没有赋给s1
System.out.println(s0==s1.intern());
System.out.println(s0==s2);
System.out.println("");
/**
* 例2
*/
String s3=new String("you");
System.out.println(s3==s3.intern());//其中s3.intern()来自刚刚创建的常量池中的you,s3来自于堆中的you,两者不一样
String s4=s3.intern();
System.out.println(s3+" "+s4);
System.out.println(s4==s3.intern());
}
}
测试结果:
false
false
true
true
false
you you
true