对于一个final变量,只要满足三个条件,这个final就相当于一个直接量: 1. 使用final修饰符修饰 2. 在定义该final变量时指定了初始值 3. 该初始值可以在编译时就被确定下来
public static void main(String[] args) { // 下面定义了4个final“宏变量” final int a = 5 + 2; final double b = 1.2 / 3; final String str = "疯狂" + "Java"; final String book = "疯狂Java讲义:" + 99.0; // 下面的book2变量的值因为调用了方法,所以无法在编译时被确定下来 final String book2 = "疯狂Java讲义:" + String.valueOf(99.0); System.out.println(book == "疯狂Java讲义:99.0");// true System.out.println(book2 == "疯狂Java讲义:99.0");// false } final修饰的方法不可被重写。final修饰的类不可以有子类。