黑马程序员技术交流社区

标题: 运行结果 是 [打印本页]

作者: longxuxu    时间: 2015-10-5 22:44
标题: 运行结果 是
String s1 = new String("hello");
                                String s2 = new String("hello");
                                System.out.println(s1==s2);//false
                                System.out.println(s1.equals(s2));//true

                                String s3 = new String("hello");
                                String s4 = "hello";
                                System.out.println(s3==s4);//false
                                System.out.println(s3.equals(s4));//true

                                String s5 = "hello";
                                String s6 = "hello";
                                System.out.println(s5==s6);//true
                                System.out.println(s5.equals(s6));//true
作者: hulk374    时间: 2015-10-6 07:04
坐等大神
作者: YaYa    时间: 2015-10-6 16:18
看底层,有new的话肯定是新建,没有new就不一定,我的记得应该是堆里面的常量池,如果常量池里面有就直接拿,所以不需要创建!
String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1==s2);//false   都new了 都重新创建 地址不同
  System.out.println(s1.equals(s2));//true   地址不同内容相同

就举例说介一个  其他都类似,可能说错的地方也就是红字的!





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