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(),声明了一个字符串对象,初始化堆内分配内存