【Java】【JVM】经典面试题:Java字符串变量相等问题

        String var1 = "hello";
        String var2 = "hello";
        String var3 = new String("hello");
        String var4 = new String("hello");
        String var5 = "he" + "llo";
        String var6 = new String("hello").intern();
        System.out.println(var1 == var2); //var1和var2字面量编译期就可以确定,常量池中字面量相同的字符串常量只有一份,true
        System.out.println(var1 == var3); //var3是通过new创建的新对象,false
        System.out.println(var3 == var4); //通过new创建的对象,和其它对象都是独立的,false
        System.out.println(var1 == var5); //var5的字面量编译期就可以确定,和var1是同一个常量,true
        System.out.println(var1 == var6); //intern方法返回一个常量池中字面量相同的常量,true

猜你喜欢

转载自blog.csdn.net/u013718730/article/details/89097460