黑马程序员技术交流社区
标题:
求==和equals的完美却别讲解
[打印本页]
作者:
东东瑞
时间:
2016-7-30 21:23
标题:
求==和equals的完美却别讲解
求==和equals的完美却别讲解
作者:
nblity007
时间:
2016-7-30 21:37
==和equals的区别:
* 1.==可以用于"值类型"也可以用于"引用数据类型":
* 用于"值类型":判断左右两边的"值"是否相等:
* int a = 10;
* int b = 20;
* if(a == b){
* }
* 用于"引用数据类型",判断左右两边的"地址"是否相等
* String s1 ="abc";
* String s2 = "abc";
* System.out.println(s1 == s2);
* 2.equals()只能用于"引用数据类型":
* 1).我们经常需要判断"两个对象"中的"所有属性值"是否完全相同。使用equals经常是判断两个对象中的属性值是否完全相同
* ArrayList<User> userList = new ArrayList<>();
* User user = new User("李四",20);
* for(int i= 0;i < userList.size(); i++){
* User u = userList.get(i);
* if(u.getName().equals(user.getName()) &&//不使用equals(),也可以一个属性一个属性的单独判断
* u.getAge() == user.getAge()){
* //重复的数据
* }
* //使用equals()
* if(u.equals(user)){
* //重复的数据
* }
* }
*
作者:
东东瑞
时间:
2016-7-30 22:19
nblity007 发表于 2016-7-30 21:37
==和equals的区别:
* 1.==可以用于"值类型"也可以用于"引用数据类型":
* 用于"值类型" ...
3Q。。。。。。。。。。。。。。。
作者:
showJiang
时间:
2016-7-30 22:44
==可以比较基本数据类型和引用数据类型,比较基本数据类型是是比较值大小,比较引用数据类型时是比较地址值
equals只能比较引用数据类型,每重写时是比较地址值(Object源码里写的就是==),改写后比较对象属性值
作者:
haizi004
时间:
2016-7-30 22:48
==可以比较基本数据类型和引用数据类型,比较基本数据类型是是比较值大小,比较引用数据类型时是比较地址值
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2