La différence entre la valeur null et vide (“”) Java String

Quelle est la différence entre null et la "" (chaîne vide)?

J'ai écrit un code simple:

String a = "";
String b = null;

System.out.println(a == b); //false
System.out.println(a.equals(b)); //false

Les deux déclarations de retour false. Il semble, je ne suis pas en mesure de trouver quelle est la réelle différence entre eux.

  • Comparer avec b.equals(a) -- mais ne pas utiliser de == pour la chaîne de la comparaison que "ça ne marchera pas" par d'autres moyens. Le null valeur (qui est différente de celle d'une chaîne vide "", une Chaîne valide exemple) ne peut jamais avoir une méthode appelée sur elle. En plaçant le "non nulle" (généralement une valeur constante ou littéral) sur le côté gauche de l'égalité est "Yoda le conditionnel" ou certains-tel.