For the first question,
instance variable is given default value which is null. For the first println() method, the result is that you are printing null, and for the second println() method, there is no null that can invoke toString() method, that's why it gives runtime error. (Ups!!! null is nothing, NOT an object)
For the second question,
The println() method's result is a String array object @ location in the memory. The String is already declared, but has no object inside (null).
So, if you try to call this method, println(str1), it will give runtime error.
Correct me if I were wrong, I am also in learning phase