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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhiguoguo 中级黑马   /  2015-12-20 23:27  /  472 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

* 1.判断定义为String类型的s1和s2是否相等
        * String s1 = "abc";
        * String s2 = "abc";
        * System.out.println(s1 == s2);                                        
        * System.out.println(s1.equals(s2));                
* 2.下面这句话在内存中创建了几个对象?
        * String s1 = new String("abc");                       
* 3.判断定义为String类型的s1和s2是否相等
        * String s1 = new String("abc");                       
        * String s2 = "abc";
        * System.out.println(s1 == s2);               
        * System.out.println(s1.equals(s2));
* 4.判断定义为String类型的s1和s2是否相等
        * String s1 = "a" + "b" + "c";
        * String s2 = "abc";
        * System.out.println(s1 == s2);               
        * System.out.println(s1.equals(s2));
* 5.判断定义为String类型的s1和s2是否相等
        * String s1 = "ab";
        * String s2 = "abc";
        * String s3 = s1 + "c";
        * System.out.println(s3 == s2);
        * System.out.println(s3.equals(s2));

7 个回复

倒序浏览
第一题 True true  第二题 2个  一个字符串在常量池  一个在栈内存对象
第三题 false  true
回复 使用道具 举报
2. 创建两个对象
回复 使用道具 举报
第一题ture ture
“abc“放在常量池,并不会改变地址,而== 是判断地址是否相等
equals是比较内容是否相同
回复 使用道具 举报
第二题:两个
常量池中的”abc“和堆内存中的new String
回复 使用道具 举报
第三题:false ; ture
首先s1 中的”abc“指向的是new String;
而s2中的”abc“是直接从常量池中拿的,
s1指向的是new String 的地址
s2是”abc“在常量池中的地址
回复 使用道具 举报
第四题:true true
”a“ + ”b“ + "c"和”abc“是一样的效果
回复 使用道具 举报
第五题:false true
s3用到了s1的new String对象,所以地址值必然是指向s1的, 地址值是不同的
而字符串的内容是可以这样拼接比较的。equals比较内容为true
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马