Perbedaan antara String Java null dan kosong ("")

Apa perbedaan antara nulldan ""(string kosong)? Saya telah menulis beberapa kode sederhana: String a = ""; String b = null; System.out.println(a == b); // false System.out.println(a.equals(b)); // false Kedua pernyataan kembali false. Sepertinya, saya tidak dapat menemukan apa perbedaan yang...