java对象的比较分析
来源:互联网 发布:ios app新闻项目源码 编辑:程序博客网 时间:2024/06/06 15:44
关于对象的比较我们可以通过以下三种手段来实现
一、利用"=="比较引用
Java中,当比较简单类型变量时用"==",只要两个简单类型值相等即返回ture,否则返回false,而在对象的比较中,"=="运算符就是比较引用变量所指向的内存地址是否相同 ;
二、通过覆盖equals方法比较引用
User u1=new User("Tom"); User u2=new User("Tom"); User u3=u1; u3.setName("Jack"); u1==u3//true u1.equals(u3)//true u1==u2//false; u1.equals(u2)//false
三、重写equals()方法
在Java API中,有些类重写了equals()方法,这些类包括:String、Double、Float、Long、Integer、Short、Byte、、Boolean、BigDecimal、BigInteger等等。
String s1=new String("hello"); String s2=new String("hello"); s1==s2//false,按地址进行比较 s1.equals(s2)//true, 已重写,按值进行比较
三、手动重写equals方法比较对象
在定义一个类的时候,如果涉及到对象的比较,应该重写equals()方法。
public boolean equals(Object o) { //如果和自身比较,返回TRUE if(this==o) return true; //如果不是这个类的实例,返回FALSE if(!o instanceof User) return false; final User u=(User)o if(this.getName().equals(u.getName()) return true; else return false; }
最后给出一个标准的对象比较范例
package javacompareDemo;//对象的比较class person{private String name;private int age;public person(String name,int age){this.name=name;this.age=age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}//这里注意,比较操作是应该发生在person类内部函数上的public boolean compare(person per){ if(this==per)return true;if(this.name.equals(per.name)&&this.age==per.age)return true;elsereturn false;}}public class ClassCompare1 {public static void main(String[] args) {person per1 = new person("影流之主",19);person per2 = new person("放逐之刃",18);person per3 = new person("影流之主",19);System.out.println(per1.compare(per2));System.out.println(per1.compare(per3));}}
0 0
- java对象的比较分析
- Java对象的比较
- Java 对象的比较
- java对象的比较
- java类对象的比较
- JAVA对象的比较测试
- java 对象的比较操作
- 深入Java对象的比较
- 深入Java对象的比较
- 深入Java对象的比较
- Java中对象的比较
- JAVA 对象间的比较
- java中对象的比较
- 深入Java对象的比较
- java-对象的引用、对象的比较
- java对象——对象的比较
- 谈谈Java中对象的比较
- Java字符串对象的比较(zz)
- [Leetcode] 4 - Median of Two Sorted Arrays
- makefile编译一个目录下的文件
- Rotate Image
- 利用BP神经网络分类iris数据集
- 设计模式之--访问者模式
- java对象的比较分析
- 一个徒弟帮另外一个徒弟优化的案例
- 把成长心态谨记心中
- Roboitum中加入失败重跑机制
- NDK-ambiguates old declaration 'XXX'
- AngularJS Module类的方法
- mysql 配置
- 配置你的 csh/tcsh
- php写数据到文件