请教一个final变量的问题
public class Test{
public int test(final int x){
return ++x;
}
}
这代码有错么?我感觉没错啊 final只是引用不能变,值可以变吧?
------解决方案--------------------刚百度了一个比较详细的 楼主看看 http://zhidao.baidu.com/question/357580512.html
------解决方案--------------------final 修饰的变量值是不能变的,这个是基本类型,哪来的引用?
------解决方案--------------------
你理解错了 对于基本类型 值不能改
------解决方案--------------------public int test(final int x) {
return ++x; //编译异常
}
int i = 1;
System.out.println(test(i)); //结果为2
System.out.println(i); //结果为1
------解决方案--------------------final修饰的为常量,不能再对其进行任何的修改。
------解决方案--------------------能编译过去吗?
------解决方案--------------------return ++x; //编译异常
当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的值
------解决方案--------------------final修饰的变量为编译器级别的常量,编译器不允许其值被改变,因此定义变量同时必须初始化,否则编译器会报错。
------解决方案--------------------final 修饰的 是常量,就是常数
------解决方案--------------------final就是最后一次赋值,值不再变化了