package com.inmind.final01; import java.util.Arrays; /* final关键字用于修饰局部变量 局部变量:在方法中定义的变量 1.基本数据类型:保存的值真正的值,表示该值赋值之后不能被修改的 2.引用数据类型: 保存的值是地址值。引用数据类型地址不变,所指向的内容可以改变 */ public class Demo02 { public static void main(String[] args) { //基本数据类型被final修饰 final int i = 10;//常量 System.out.println(i); final int j;//先定义后赋值 j = 20; System.out.println(j); System.out.println("---------------------------"); //引用数据类型被final修饰(数组、类、接口) final int[] arr = {1, 2, 3};//arr中保存的是地址,如果添加了final,那就表示arr不能改变,也就是地址不能改变 //arr = new int[]{4, 5, 6};//这里改变了arr中的地址,不允许的 System.out.println(Arrays.toString(arr)); //只要地址不变,地址对应的堆中空间的值是可以改变的 arr[0] = 4; arr[1] = 5; arr[2] = 6; System.out.println(Arrays.toString(arr)); //创建一个类的对象 final Student s = new Student("张三", 20);//s是一个对象名,s是一个引用数据类型,保存的是地址 System.out.println(s); System.out.println(s.getName()); //s = new Student("李四", 22);//这里改变了s中的地址,不允许的 s.setName("李四");//只要地址不变,地址对应的堆中空间的值是可以改变的 System.out.println(s); System.out.println(s.getName()); } }