String abc=null;String abc="";String abc;String abc = new String();区别

1、String abc=null,声明了一个字符串对象的空引用,在栈内创建了栈帧或句柄,未在堆内存内分配空间;
2、String abc="",声明了一个空字符串对象,初始化栈内分配了内存,指向常量池空字符串地址;
3、String abc,声明了字符串对象,但为分配内存。作为成员变量时程序运行会自动复制为null,相当于字符串对象空引用,同1,作为局部变量只声明无法使用;
4、String abc = new String(),声明了一个字符串对象,初始化堆内分配内存

原文地址:https://www.cnblogs.com/mwq1992/p/14205099.html