黑马程序员技术交流社区

标题: 关于字符串拼接比较的一点分享 [打印本页]

作者: 水月灬清影    时间: 2016-7-10 21:01
标题: 关于字符串拼接比较的一点分享
String s1 = "hello";
                        String s2 = "world";
                        String s3 = "helloworld";
                       
                        System.out.println(s3 == s1 + s2);// false
                        System.out.println(s3.equals((s1 + s2)));// true

                        System.out.println(s3 == "hello" + "world");// true!  先执行两个常量字符串拼接,再在字符串常量池中匹配,如存在,直接指向拼接串地址
                        System.out.println(s3.equals("hello" + "world"));// true
                       
                **另特别注意以下程序       
                String s4 = "say" + s1;
               String s5 = "say" + s1;
                **// s1是变量,s5在运行时才知道具体值,所以s4和s5是不同的对象,地址值不同   注意与两个常量拼接相区分!
                System.out.println("s4和s5内存地址相同吗?" + (s5 == s4));  //false
                System.out.println("s4和s5值相同吗?" + (s5.equals(s4))); //true
作者: zhoubo    时间: 2016-7-10 21:13
谢谢分享  
作者: 糊图    时间: 2016-7-10 22:52
自己学到了还给别人分享,顶你
作者: suming    时间: 2016-7-10 23:35
谢谢分享




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