为什么final关键字可以在Java中使字符串相等

时间:2018-06-29 04:11:04

标签: java

public class Test {
public static void main(String[] args)  {
    String a = "hello2"; 
    final String b = "hello";
    String d = "hello";
    String c = b + 2; 
    String e = d + 2;
    System.out.println((a == c));
    System.out.println((a == e));
}

结果是对与错。 “ ==”是否不等于字符串地址相等? 我认为结果是False Fasle

1 个答案:

答案 0 :(得分:-1)

由于使用final关键字,编译器可以在编译时用字符串c替换hello2,并且ac都从字符串池中加载,因此它们是对池中相同字符串的相同引用。