1字符串创建与存储的机制
String s1 = new String("abc") String s2 = new String("abc") 两个引用对象 两个相同的字符串对象 他们内存地址是不同的 new总会生成新的对象
String s1 = "abc"; String s2 = "abc"; s1 s2 引用的是同一个常量池中的对象 首先在字符串常量池中查找是否已经有相同的字符串被定义 依靠的是String类equals方法的返回值
String s ="abc" ; //把"abc"放到常量区中,在编译时产生
String s ="ab"+"c" ; //把"ab"+"c"转换为字符串常量"abc"放到常量区中
String s =new String("abc"); //在运行时把"abc"放到堆里
String s1 = "abc" ; //在常量区存放一个"abc"字符串对象
String s2 = "abc" ; //s2 引用常量区中的对象 因此不会创建新的对象
String s1 =new String("abc"); //在堆中创造一个新的对象
String s2=new String("abc"); //在堆中又创造一个新的对象