char[] chs = {‘a‘,‘b‘,‘c‘};
String s1 = new String(chs);
String s2 = new String(chs);
上面的代码中JVM首先会创建一个字符数组,然后每一new都会有一个新的地址,只不过S1和S2参考的字符串内容是相同的。
String s3 = "abc";
String s4 = "abc";
在上面的代码中,针对第一行代码,JVM回建立一个String对象放在字符串池中,并给S3参考,第二行则是让S4直接参考字符串池中的String对象,也就说他们本质上是同一个对象。
原文:https://www.cnblogs.com/tamias/p/13289721.html