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!
Because you made
arrreferring tonull, so it threw aNullPointerException.EDIT:
Let me explain it via figures:
After this line:
10 places will be reserved in the heap for the array
arr:and after this line:
You are removing the reference to the array and make it refer to
null:So when you call this line:
A
NullPointerExceptionwill be thrown.