小小区别 向高手请教Java中 equals与==的区别 谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 equals比较内容是否相同,==比较的是引用是否相同。 String str1 = new String("abc");String str2 = new String("abc");System.out.println(str1 == str2);//打印出false,因为str1和str2是两个不同的引用System.out.println(str1.equals(str2));//打印出true,因为str1和str2的值相同 默认情况下二者没有任何区别,都是比较引用的,比如你自己写个类equals就等同于==但是很多类重写了equals方法,比如String,重写后用于比较内容是否相同,而==依旧是比较引用所以有没有区别要看有没有重写equals == 是比较引用的, 就是两个"变量" 是否指向同一个对象。equals, 如果不重写的话(overide)跟==是一样的,看Object的equal实现就知道了。如果重写equals的话,那怎么才叫equals了,由你的具体实现决定。 所以常说的比较内容,比较值是很抽象的;对一个对象而言,什么才是它的内容,它的值呢?? equals比较内容是否相同,==比较的是引用地址是否相同 看一下java的源码,就清晰了。Ojbect类下的equals()和String类下的equals() “equals”和“==”的区别答:如果操作两边都是对象句柄,就比较两个句柄是否指向同一个对象。如果两边是基本数据类型,比较就是值。“equals”比较奥德是两个对象的内容如果不重载“equals”方法,自动调用object的“equals”方法,则和“=="一样。在jdk中像:“String”、“Integer”默认重载了“equals”方法,则比较的是对象的内容。在实际编程中,建议使用“equals”方法。 equals比较的值==比较的是地址 我艹,这么人连这个基本问题都搞不清楚,搞不清楚问就是了,有些傻X还自以为是,真是服了。看来csdn java版块还是学生居多啊。 equals比较内容是否相同,==比较的是引用是否相同 equals:比较内容==:比较地址 "=="是运算符,判断两个对象/基础类型引用的内存地址是否相同。equals是Object类中方法,所以所有类都可以调用,因为多态的关系,如果你没有重写equals,那么调用的就是Object类中的equals方法,即直接用"=="比较。如果你重写了equals方法,那么返回值就由你自己定义。注:JDK中所提供的Object子类,你能用上的都有重写equals方法。 LS得说法跟《Java编程思想》44页很相似啊,楼主不妨看看 java java java 正则表达式匹配的问题 JTable 的行数比数据库里的少怎么办 想在深圳参加scjp认证的培训,不要网上培训的 已经从IMAIL LDAP server服务器中查询到了,所需要的数据,如何从中得到每条纪录的DN,很急,大家帮忙!!! 关于二维数组操作的问题 重赏 鄙人刚学JAVA,有两个简单问题,请大家不吝赐教。多谢多谢。 急!急!求教JAVA中关于利用SHA生成消息摘要。。。 高分求救JTable打印预览程序 密码登陆框问题,请帮忙看一下 java RMI 程序打包问题
String str1 = new String("abc");
String str2 = new String("abc");
System.out.println(str1 == str2);//打印出false,因为str1和str2是两个不同的引用
System.out.println(str1.equals(str2));//打印出true,因为str1和str2的值相同
equals, 如果不重写的话(overide)跟==是一样的,看Object的equal实现就知道了。如果重写equals的话,那怎么才叫equals了,由你的具体实现决定。 所以常说的比较内容,比较值是很抽象的;对一个对象而言,什么才是它的内容,它的值呢??
Ojbect类下的equals()和String类下的equals()
答:如果操作两边都是对象句柄,就比较两个句柄是否指向同一个对象。如果两边是基本数据类型,比较就是值。“equals”比较奥德是两个对象的内容如果不重载“equals”方法,自动调用object的“equals”方法,则和“=="一样。在jdk中像:“String”、“Integer”默认重载了“equals”方法,则比较的是对象的内容。在实际编程中,建议使用“equals”方法。
==比较的是地址
==:比较地址
因为多态的关系,如果你没有重写equals,那么调用的就是Object类中的equals方法,即直接用"=="比较。
如果你重写了equals方法,那么返回值就由你自己定义。
注:JDK中所提供的Object子类,你能用上的都有重写equals方法。