A String is an object. If you initialize it to null, you are telling the compiler that you are aware that wasn't initialized, and that there should be no warnings when you first try to use the variable. Aside from that, you are pointing a reference to null, of course.
If you initialize the String to an empty String, however, the following happens:
- There's now a String object allocated
- The compiler will put that String literal in the String pool
- Any other String that you initialize to "" will point to the same inmutable String from that pool
So, the question is, how do you handle nulls or empty Strings in your code? That's what should guide your decision
nulland""mean the same or different things to the using code.