黑马程序员技术交流社区

标题: 关于String类型判断问题 [打印本页]

作者: ouyzm    时间: 2016-9-28 23:51
标题: 关于String类型判断问题
* 3.判断定义为String类型的s1和s2是否相等
        * String s1 = new String("abc");                       
        * String s2 = "abc";
        * System.out.println(s1 == s2);                turn
        * System.out.println(s1.equals(s2));     turn
为什么System.out.println(s1)打印出来是 abc
这题还会 System.out.println(s1 == s2);                是turn呢???
作者: Jarc    时间: 2016-9-29 09:16
* String s1 = new String("abc");                        
        * String s2 = "abc";
        * System.out.println(s1 == s2);
结果是false,
作者: bopeia    时间: 2016-9-29 09:20
...........
作者: CreScert    时间: 2016-9-29 22:08
你确定第一个是turn?表示我不知道java中turn是什么,我只记得有个true,
而且第一个也不是true呀,是false,
String s2 = "abc";//s2指向的是常量池中的abc,
String  s1 = new String("abc"); //这一步我没记错的话会创建两个对象,一个指向,s1指向的堆内存的一个对象, 这个对象指向的是“abc”,所以他们不相等
作者: 杜亚超    时间: 2016-9-29 22:12
==,比较的是内存地址,第一个是false;equals比较的是内容。第二个为true。
作者: langyabang1110    时间: 2016-9-29 23:59
你还是在看看笔记
作者: 噜噜吧    时间: 2016-9-30 15:11
你应该是刚学习java基础吧
作者: barny    时间: 2016-9-30 16:07
不等,不要问我为什么
作者: markiyangliu    时间: 2016-10-3 22:31
因为==比较的是地址值咯!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2