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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hezhipengzipp 中级黑马   /  2016-3-8 22:38  /  838 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

* 1.判断定义为String类型的s1和s2是否相等
        * String s1 = "abc";
        * String s2 = "abc";
        * System.out.println(s1 == s2);         (true)                               
        * System.out.println(s1.equals(s2));         (true)       
* 2.下面这句话在内存中创建了几个对象?
        * String s1 = new String("abc");        //如果方法区常量池没有,则创建两个对象,堆内存和常量池,否则只有一个,在常量池               
* 3.判断定义为String类型的s1和s2是否相等
        * String s1 = new String("abc");                       
        * String s2 = "abc";
        * System.out.println(s1 == s2);                (false)                //s1地址值是指堆内存,s2地址值在方法区常量池
        * System.out.println(s1.equals(s2));        (true)
* 4.判断定义为String类型的s1和s2是否相等
        * String s1 = "a" + "b" + "c";
        * String s2 = "abc";
        * System.out.println(s1 == s2);                (true)                //字符串是常量相加,是先相加,然后在常量池找,如果有,就返回地址值,否则就创建
        * System.out.println(s1.equals(s2));        (true)
* 5.判断定义为String类型的s1和s2是否相等
        * String s1 = "ab";
        * String s2 = "abc";
        * String s3 = s1 + "c";
        * System.out.println(s3.equals(s2));        (true)
        * System.out.println(s3 == s2);                (false)      //字符串是变量相加,是先开空间,再拼接)

4 个回复

倒序浏览
String比较特殊,就是8种基本类型 ,本身也是一个类 ,既然是类,那么只要new对象就会开辟一块新地址,所以一般比较时会用歪equils方法进行比较
回复 使用道具 举报
学习一下。好像明白了是怎么回事了。谢谢楼主。
回复 使用道具 举报
。。。66666
回复 使用道具 举报
6666666666666666666666666666666666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马