黑马程序员技术交流社区
标题:
字符串的运行结果的具体分析
[打印本页]
作者:
android0276
时间:
2014-7-5 16:44
标题:
字符串的运行结果的具体分析
本帖最后由 android0276 于 2014-7-6 20:32 编辑
01: public class Test {
public static void main(String[] args) {
String first = "Phone:" + "55555";
String second = "Phone:" + 55555;
String third = new String("Phone:") + new String("55555");
String fourth = new String("Phone:") + 55555;
System.out.println(first==second);
System.out.println(first==third);
System.out.println(first==fourth);
}
}
作者:
001可望成功
时间:
2014-7-5 23:06
其他的不多解释,new会强制性的开辟新内存,这样就不会在内存中寻找字符窜,因此只要使用new,就是不一样的,即false
作者:
hxwo211314
时间:
2014-7-5 23:25
System.out.println(first==second); 结果为true,因为两个字符串的地址值一样.
System.out.println(first==third); 结果为false,因为String third属于new的字符串,他会在堆内存中强制性开辟出一个新的内存,因此另个字符串的地址值不一样,所以为false.
System.out.println(first==fourth); 结果为false,原因和上面的一样.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2