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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Demo{
        public static void main(String[]args){
                String s1 = "abc";
                String s2 = "abc";
                if( s1.equals (s2) ){
                        System.out.println( "它们是一样的");
                }
        }
}
和下面这个代码
class Demo{
        public static void main(String[]args){
                String s1 = "abc";
                String s2 = "abc";
                if( s1== s2 ){
                        System.out.println( "它们是一样的");
                }
        }
}  我运行了一下它们的结果是一样的  
但是我搞不清楚它们的区别,就是 (s1==s2)和(s1.equals( s2 )) ,哪位大神能解

评分

参与人数 1黑马币 +20 收起 理由
CongCiYH + 20 我还没看呢

查看全部评分

1 个回复

倒序浏览
两段程序中的s1和s2存的都是地址值,不是“abc”,所以==比较的是地址,自然不相等咯,而equals是直接比较对象中的数值,不是地址值,所以相等,去看看String类吧。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马