String a = "abc"; //1个
// "abc"在字符串常量池中
String a = "abc";
String b = "abc"; //1个
// 两个"abc"都在字符串常量池中
String a = "a"+“b”+"c"; //1个
//在编译器的执行过程中,有以下过程
//a b c ab ac abc 几种情况,但是编译完成时就会合并成abc
String a = new String("abc"); //2个
//"abc"在字符串常量池中 1个
//在运行new时在堆中开辟了新空间 1个
//a引用指向堆中的对象,不算
String a = new String("abc");
String a = new String("abc"); //3个
//"abc"在字符串常量池中 1个
//每次new都会在堆中创建一个对象 2个