final关键字面试题
程序示例
/*
final:
被final修饰的局部变量是基本数据类型的时候,不可以修改值
被final修饰的局部变量是引用数据类型的时候,该对象的地址值是无法改变的,
但是引用堆内存中的变量是可以发生改变。
*/
class Student{
int age = 18;
}
public class FinalDemo2 {
public static void main(String[] args) {
// 局部变量,并且a是基本数据类型
int a = 10;
System.out.println(a);
// a的值可以发生改变
a = 100;
System.out.println(a);
// 局部变量,并且b是被final修饰的基本数据类型
final int b = 100;
System.out.println(b);
// b的值不可发生改变
// b = 200;
// System.out.println(b);
//创建一个Student对象s1(引用数据类型)
Student s1 = new Student();
System.out.println(s1.age);
//创建一个被final修饰的Student对象s2(引用数据类型)
final Student s2 = new Student();
System.out.println(s2.age);
// 被final修饰的局部变量是引用数据类型的时候,该对象的地址值是无法改变的
// s2 = s1 ;
// 但是引用堆内存中的变量是可以发生改变
s2.age = 19;
System.out.println(s2.age);
}
}