public class Test{
  public int test(final int x){
    return ++x;
  }
}这代码有错么?我感觉没错啊 final只是引用不能变,值可以变吧?

解决方案 »

  1.   

    刚百度了一个比较详细的  楼主看看  http://zhidao.baidu.com/question/357580512.html
      

  2.   

    final 修饰的变量值是不能变的,这个是基本类型,哪来的引用?
      

  3.   

    public int test(final int x) {
    return ++x; //编译异常
    }
    int i = 1;
    System.out.println(test(i)); //结果为2
    System.out.println(i); //结果为1
      

  4.   

    final修饰的为常量,不能再对其进行任何的修改。
      

  5.   

    return ++x; //编译异常
    当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的值
      

  6.   

    final修饰的变量为编译器级别的常量,编译器不允许其值被改变,因此定义变量同时必须初始化,否则编译器会报错。
      

  7.   

    final 修饰的 是常量,就是常数
      

  8.   

    final就是最后一次赋值,值不再变化了