将数组传递给方法

时间:2015-06-09 16:35:20

标签: java arrays null

我有简单的代码场景:

class Demo
{ 
  static void check(int z[])
 {
   z=null;
 } 

}

class arrNullCheck
{
  public static void main(String args[])
 {
    int arr[]={2,3,4,5};

    Demo.check(arr);

    for(int i=0;i<4;i++)
     {
       System.out.print(arr[i]);

      }     
  }
}

据我说,这个程序应该在运行时抛出空指针异常,因为z等于null,但是输出如下:

Output: 2 3 4 5

如果我更新方法如:

 static void check(int z[])
 {
   z[0]=9;
 } 

然后它将按预期更新值为9的数组。为什么在这里没有工作呢?

1 个答案:

答案 0 :(得分:0)

不,它不会抛出异常。 Java是按值传递语言,引用也按值传递。您也无法重置参考。 z是对arr的引用的副本,当您在方法中重新分配给null时,您只是更改了本地副本而不是原始arr