Java字符串池测试不起作用

Iga*_*ich 1 java string pool

在阅读了Java String Pool之后,我决定进行一些测试.我编写了以下测试程序,根据JDK规范,它的结果与Java String Pool行为不匹配.

public class Temp_20141220 {

    private String b1 = "hello";

    public static void main(String[] args) {
        Temp_20141220 t = new Temp_20141220();
        String b = "hello";
        System.out.println("b==b1 =" + t.b1 == b);
    }
}
Run Code Online (Sandbox Code Playgroud)

我一直期望得到输出:b == b1 = true但是我得到了:b == b1 = false

为什么这样?Ubuntu的JVM不支持这个Java字符串池功能吗?

Sot*_*lis 9

这个

System.out.println("b==b1 =" + t.b1 == b);
Run Code Online (Sandbox Code Playgroud)

相当于

System.out.println( ("b==b1 =" + t.b1) == b);
Run Code Online (Sandbox Code Playgroud)

你申请基准之间的平等b和串联"b==b1 ="t.b1.