I have simple code Scenario:
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]);
      }     
  }
}
According to me this program should throw null pointer exception at runtime as z is equal to null,But output is as follows:
Output: 2 3 4 5
If i update method like:
 static void check(int z[])
 {
   z[0]=9;
 } 
then it will update array with value 9 as expected. why doesn't null work here then ?
                        
No, it won't throw an exception. Java is a pass by value language, and references are also passed by value. You cannot reseat references either. The
zis a copy of a reference toarr, and when you reassign tonullin your method, you are only changing the value of the local copy and not of the originalarr.