首先的回答就是:它们并不是同一个东西!

空串: 就是这个字符串的内容就是空的,里面没有东西.String s="";

空格字符串: 就是这个字符串里面有一个空格字符.虽然看不见,其实上是有一个空格字符的!

null: 就是引用指向的对象找不到,也就是找不到要找的对象的地址!这个时候才会为空!

public class Test {
    public static void main(String[] args) {

        //空串
        String s="";
        //空格字符串
        String s1=" ";
        //null
        String s2=null;
        System.out.println(s);        //输出为空
        System.out.println(s1);       //输出为空格字符
        System.out.println(s2);       //输出为null

    }
}

输出结果:

 注意: 第一行是空的,第二行虽然是空的,实际上有个空格字符串!