A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ouyzm 中级黑马   /  2016-9-28 23:51  /  495 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

* 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呢???

8 个回复

倒序浏览
* String s1 = new String("abc");                        
        * String s2 = "abc";
        * System.out.println(s1 == s2);
结果是false,
回复 使用道具 举报
...........
回复 使用道具 举报
你确定第一个是turn?表示我不知道java中turn是什么,我只记得有个true,
而且第一个也不是true呀,是false,
String s2 = "abc";//s2指向的是常量池中的abc,
String  s1 = new String("abc"); //这一步我没记错的话会创建两个对象,一个指向,s1指向的堆内存的一个对象, 这个对象指向的是“abc”,所以他们不相等

评分

参与人数 1技术分 +1 收起 理由
噜噜吧 + 1

查看全部评分

回复 使用道具 举报
==,比较的是内存地址,第一个是false;equals比较的是内容。第二个为true。
回复 使用道具 举报
你还是在看看笔记
回复 使用道具 举报
你应该是刚学习java基础吧
回复 使用道具 举报
barny 中级黑马 2016-9-30 16:07:18
8#
不等,不要问我为什么
回复 使用道具 举报
因为==比较的是地址值咯!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马