strange java string array null pointer exception

12,680

Solution 1

Because you made arr referring to null, so it threw a NullPointerException.


EDIT:

Let me explain it via figures:

After this line:

String arr[] = new String[10];

10 places will be reserved in the heap for the array arr:

enter image description here

and after this line:

arr = null;

You are removing the reference to the array and make it refer to null:

enter image description here

So when you call this line:

arr[0] = "one";

A NullPointerException will be thrown.

Solution 2

With arr = null; you are deleting the reference to the object. So you can't access it anymore with arr[anynumber] .

Share:
12,680
m0therway
Author by

m0therway

Updated on June 04, 2022

Comments

  • m0therway
    m0therway almost 2 years

    This problem came up in a practice test: create a new string array, initialize it to null, then initializing the first element and printing it. Why does this result in a null pointer exception? Why doesn't it print "one"? Is it something to do with string immutability?

    public static void main(String args[]) {
            try {
                String arr[] = new String[10];
                arr = null;
                arr[0] = "one";
                System.out.print(arr[0]);
            } catch(NullPointerException nex) { 
                System.out.print("null pointer exception"); 
            } catch(Exception ex) {
                System.out.print("exception");
            }
        }
    

    Thanks!