一、构造方法
1.
String str1 = "abc";//通过字符串常量池创建
String str2 = "abc";//通过字符串常量池创建
这是创建字符串的一种特殊方法,此方法是在字符串常量池中创建的。 通过此方式创建,如果两个字符串的内容相同的话,则虚拟机不会再常量池中创建新的空间来存储,也就是说,此时的str1和st2是指向同一个内存空间,引用同一个字符串。
2.
String str = new String();//创建一个字符串,它的内容为空
str = "abc";
这个构造方法不穿任何东西,创建一个内容为空的字符串。
3.
String str1 = new String("abc");//在堆中开辟空间,存储字符串
String str2 = new String("abc");
此构造方法创建字符串对象,当传入一个字符串时,虚拟机会在堆中开辟一个空间,来存储这个字符串,此时str1和str2指向两个不同的空间,虽然它们的内容一样,但是它们的内存位置完全不一样。
4.
char[] c = {'a','b','c'};
String str1 = new String(c);//传入一个字符数组
此构造方法通过传入一个字符数组,会将字符数组