亦庄网站开发公司,曲阜网站建设哪家便宜,网站app开发流程,wordpress 在线商店在Java中 可以对基本类型进行比较,比较的是值是否相等 也可以对引用类型(对象)进行比较,比较的是引用变量所指向的空间地址 public static void main(String[] args) {int a 10;int b 10;System.out.println(ab);//true// 基本类型比较,比较值是否相等String s1 new Stri…在Java中 可以对基本类型进行比较,比较的是值是否相等 也可以对引用类型(对象)进行比较,比较的是引用变量所指向的空间地址 public static void main(String[] args) {int a 10;int b 10;System.out.println(ab);//true// 基本类型比较,比较值是否相等String s1 new String(aaa);String s2 new String(aaa);System.out.println(s1s2);//false//引用类型,这里比较的是两个String对象的地址是否相同} 那我们想要比较对象中所包含的内容是否相等,我们应该怎么做呢? 这时候就要引出我们的另一个主角----equals()方法:
源码: public boolean equals(Object anObject) {if (this anObject) {//判断这两个东西是否值(基本类型)/对象地址(引用类型)相等return true; //如果是,直接返回true}if (anObject instanceof String) {//判断该对象是否为字符串类型String anotherString (String)anObject;int n value.length;if (n anotherString.value.length) {//判断两个对象长度是否相等char v1[] value;char v2[] anotherString.value;int i 0;while (n-- ! 0) {//逐个比较每个字符是否相等if (v1[i] ! v2[i])return false;i;}return true;}}return false;}
这个方法一般用于比较两个字符串的内容是否相等
这个时候可能有的人会说了:
可是这个也不是对象的内容是否相等啊,你这比较的是String类型啊
到底怎么才能比较对象内容呢??? 这时候我们就需要对该对象进行重写::: public class People {private int age;private String name;private String add;Overridepublic boolean equals (Object o) {if (this o) return true;//判断两对象地址是否相等,如果相等直接返回trueif (o null || getClass() ! o.getClass()) return false;//判断两个对象的类对象是否相等,不相等直接返回falsePeople people (People) o;return age people.age //逐个比对该对象中的每一个值Objects.equals(name, people.name) Objects.equals(add, people.add);}
} 到了这里我们也看出来了(人话): 比较基本类型时,直接比较其中的值 比较引用类型时,比较的是对象在内存中的地址是否相等 equals 比较时,比较的是两个String类型的值是否相等 如果要比较两个对象中的内容是否相等,那么我们就需要重写equals()方法 (再人话) 比较基本类型equals比较对象