小小区别 向高手请教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页很相似啊,楼主不妨看看 使用socket实现两台电脑通讯的问题 cvsnt 2.5,死活弄不明白~~help~~~~ 这样配servlet真奇怪 这样也有问题??不解 望高手支招 用Map从DB里取出Char型数据,为什么会有多余的空格? 尝试连接MySQL 关于Java图像处理的问题? 求,查找节的快速算法 java正则提取数据 弱弱的问,classpath怎么设置啊!我的搞不定! 请问哪儿有API DOCUMENTATION下载? 密码登陆框问题,请帮忙看一下 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方法。