class Test
{
static void fn(int a)  // Java 中基本类型有引用传值吗? 若没有的话,形参的 final int a 这种形式有什么意义?
{
a=9;
}
public static void main(String[] args)
{
int b=0;
fn(b);
System.out.println(b);
}
}

解决方案 »

  1.   

    首先从main入手.main方法中定义了int b=0,同时将b通过参数传递给了静态方法 fn().也就是说静态方法fn中得到了变量b的值.既a=0.此时方法fn中又重写了变量a,赋予了9.
      

  2.   

    final int a在什么地方定义的啊
    在你的程序中没有什么意义楼上的已经分析了
      

  3.   

    虽然在方法中对形参的修改在方法返回时无效,但是在方法内部还是有效的,加上final的话,在方法里对这个形参的赋值语句是无法通过检查的,避免形参被修改后影响后面的语句
      

  4.   

    final int a在什么地方定义的啊
    =================================
    我只是没写出来而已
    static void fn(final int a)  // Java 中基本类型有引用传值吗? *************************************************************************我觉得既然在方法返回时无效,那这就是多余的。 给形参加 final 无非是不想改变实参 的作用
      

  5.   

    static void fn(final int a)  // Java 中基本类型有引用传值吗? ----------------------------------------------------
    防止a的值被改变,例如:如果在函数中写a=9,那么编译肯定无法通过,相当于现在a已经是一个常量了,和static void fn(final int a) {
                       final int b=0;//和这个b效果一样,都表示常量
    }
      

  6.   

    是防止在方法中被改变了,而在方法的其他地方只希望使用原始值,如
    static void fn(int a) {
     a=5;//改变了,如果是常量,那么这里编译将不能通过
    ……//若干条语句之后
    int b=1/a;//这里我的a本来想用参数a,却在疏忽之中使用了改便之后的值,编译阶段无法发觉。                  
    }