字符串初始化方式比较

2018-09-27  本文已影响172人  平凡的鱼仔

初始化方法一:

String str1=new String("abc");
String str2=new String("abc");

System.out.println(str1==str2);
System.out.println(str1.equals(str2));
//输出结果为:
// false
//true

用new String初始化的存储方式

Method1.png

初始化方法2:

String str1="abc";
String str2="abc";

System.out.println(str1==str2);
System.out.println(str1.equals(str2));
//输出结果:
//true
//true

用"="初始化的存储方式

Method2.png

此方法初始化时先在栈中创建常量"abc",然后创建匿名的new String()来将"abc"赋给str1。当初始化str2时,先在栈中查找是否存在常量"abc",若存在,则直接用用一个new String()方法将"abc"赋给str2。

ps:
1.操作少,数据少,用String()
2.单线程,操作多,数据多,用StringBuilder()
3.多线程,操作多,数据多,用StringBuffer()

上一篇 下一篇

猜你喜欢

热点阅读