When I try to print the uninitialized static char array it gives run time error (Null pointer exception) whereas the uninitialized static int array
These are two different methods, and their APIs describe the behavior fully.
public void println(Object x)
calls String.valueOf at first, which returns "null" if x is null.
See:
public void print(char[] c)
calls the print(char[] c) method which throws NullPointerException if c is null.
See: