null,“”,empty的区别

public class Test {

public static void main(String[] args) {
// TODO Auto-generated method stub
/**
* 等号左边是对象的引用,右边是在堆上分配的内存
*/
String str1=new String();//绝对的空,使用isEmpty检查,分配了内存却没有赋值
String str2="";//相对的空,分配了内存只是赋值了一个空字符串
String str3=null;//只是声明了一个引用在栈上,并没有分配内存
System.out.println(str1.isEmpty());
System.out.println(str2=="");
System.out.println(str3==null);

}
}

执行结果为:

true

true

true

原文地址:https://www.cnblogs.com/blythe/p/7363828.html