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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

3 个回复

倒序浏览
谢谢分享  
回复 使用道具 举报
自己学到了还给别人分享,顶你
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马