锁-lock.intern()

为什么要使用lock.intern(),直接lock有什么问题?

如果锁的字符串是new的方式生成,虽然字符串的内容一致,但是,如果不使用intern的话,可能是比较两个字符串的引用,这个是不一致的。就会导致上锁无效。

public class TestIntern {
    public static void main(String[] args) {
        String a = "abc"+123;
        String b = "abc"+123;
        String c = new String("abc"+123);
        String d = new String("abc"+123).intern();
//        System.out.println(a==b);
//        System.out.println(a.equals(b));
        System.out.println(a.equals(c));
        System.out.println(a==c);
        System.out.println(a.equals(d));
        System.out.println(a==d);
    }
}

 

posted @ 2021-05-15 15:41  karbon  阅读(581)  评论(0)    收藏  举报