黑马程序员技术交流社区
标题:
关于final的问题
[打印本页]
作者:
黑马无敌
时间:
2015-6-25 20:25
标题:
关于final的问题
使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
作者:
1千克=1024克
时间:
2015-6-25 21:28
引用 final String str = "hello world"; "hello world"本就不能变 而str可以重新赋值, 说明改变的是引用 用final修饰后不能重新赋值 则说明引用不可变
作者:
十五号的人生
时间:
2015-6-25 21:31
被final修饰的变量它就变成的一个常量,它就不能被重新赋值了
作者:
keto
时间:
2015-6-25 22:20
/*
final修饰局部变量:
1.普通局部变量:其值不能更改;
2.方法的形参,可以定义为final的:
*/
class Demo
{
public static void main(String[] args)
{
int x = 10;
show(x);
int[] intArray = {1,3,2,43,4};
show(intArray);
System.out.println("intArray[0] : " + intArray[0]);
}
public static void show(){
final int num = 10;
// num = 20;//编译错误。不能更改final变量的值;
}
public static void show(final int a){//形参是基本数据类型
System.out.println("a = " + a);
// a = 20;//编译错误,不能更改形参a 的值;
}
public static void show(final int[] arr){//形参是引用数据类型
arr[0] = 1000;//OK的,堆空间中的值是可以改变的
arr = new int[2];//编译错误。一个final的引用,不能重新指向其它的堆空间。也就是其引用不能改变;
}
}
作者:
安安安
时间:
2015-6-25 22:29
楼上的例子很到位。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2