java的内存区主要有,heap堆区,方法区(permGen space),我们说的常量池就在permGen区,而String的intern表示从常量池中取对应常量字符串, 如果常量池中存在,则直接取对应的字符串,如果不存在,则将自己身的字符串写入常量池.
示例:
1. String cc = "abc"; --该语句,在类加载时,已将abc加载至常量池
String dd = new String("abc").intern();
cc == dd的结果为true
2. String cc = "abc";
Strring dd = new String("abc");
cc == dd 结果为false;
3. String dd = new String("abc").intern();
String ff = new String("abc").intern();
dd == ff 结果为true;
4. String dd = new String("abc");
String ff = new String("abc");
dd == ff 结果为false;