What is the difference between a null string (String s = null) and an empty string (String s = "")?

This is what I have:

String s1 = ""; //print statement does not print any thing for s1 but s1.length()=0
String s2 = null;//print statement prints "null" for s2  but s2.length() gives exception

What does it mean?

Edit
Report