liuchen’s blog【笔记】String.intern()方法

前言

    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);