//分配内存空间,值为空 String a = new String();//代表有值,不是空字符串也不是null但内容长度为0 //分配内存空间,值为空字符串 String b = "";//为空字符串并且内容长度为0 //未分配内存空间 String c = null;//代表不存在为空但不代表是空字符串,也不代表长度为空,如果用isEmpty()判断会报空指针异常
下面的是猜想或许正确或许错误,还没查证,后面查资料再补充,希望评论区留言
从上面大概可以猜想下:null是用来判断是否给堆中分配内存,如果没有的话直接用isEmpty()判断内容长度会报空指针异常;“”是判断一个已经分配好内存并且内容为空字符串的对象;isEmpty()判断一个分配好内存的对象的长度是不是为0.