以上程序中的z2为什么我用final定义了,还是能改变它的值,输出111。

int z1 = 2;
final int z2 = 2;
//boolean e;
public static void main(String[] args){
    int z1 = 111int z2 = 111;
    System.out.println("打印数据:z="+z1+"\n"+z2);
}

以上程序中的z2为什么我用final定义了,还是能改变它的值,输出111。

main外的z2是全局变量,在里面定义的z2是局部变量,他们是不同的变量。而你上面的代码修改的是局部变量,并不是由final修饰的全局变量。

你main里面的z2和final的z2是两个变量,把main里面的z2前的int去掉试试