Java Object类方法实例分析
导读:本文共2152字符,通常情况下阅读需要7分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 1.equals方法1.API中equals方法的介绍2.==和equals 的对比== 既可以判断基本类型,又可以判断引用类型,如果判断的是基本类型,判断的是值是否相等,如果判断的是引用类型,则判断的是地址是否相等,即判断是不是同一个对象。equals 方法是 Object 类中的方法,只能判断引用类型,默认的是判断地址是否相等,子类中往往会重写该方法,重写后... ...
目录
(为您整理了一些要点),点击可以直达。1.equals方法
1.API中equals方法的介绍
2.==和equals 的对比
== 既可以判断基本类型,又可以判断引用类型,如果判断的是基本类型,判断的是值是否相等,如果判断的是引用类型,则判断的是地址是否相等,即判断是不是同一个对象。
equals 方法是 Object 类中的方法,只能判断引用类型,默认的是判断地址是否相等,子类中往往会重写该方法,重写后用于判断内容是否相等
我们可以看看 Object,String 和 Integer中的 equals 方法的 JDK 源码。
Objecto=newObject();o.equals(1);//Object类中的equals方法System.out.println("hello".equals("hello"));//String中的equals方法Integerinteger=newInteger(5);System.out.println(integer.equals(5));//Integer中的equals方法//将光标放在equals方法上,按Ctrl同时按鼠标左键,就可跳转到String和Integer中的equals方法的JDK源码。
//Object类中的equals方法publicbooleanequals(Objectobj){return(this==obj);//判断是不是当前对象}
//String类中重写的equals方法publicbooleanequals(ObjectanObject){if(this==anObject){returntrue;//首先判断是不是当前对象}if(anObjectinstanceofString){//判断当前类型是不是字符串类型StringanotherString=(String)anObject;//向下转型intn=value.length;//保存传入字符串的长度if(n==anotherString.value.length){charv1[]=value;charv2[]=anotherString.value;inti=0;while(n--!=0){if(v1[i]!=v2[i])//一个一个字符比较returnfalse;i++;}returntrue;}}returnfalse;}
//Integer类中重写的equals方法publicbooleanequals(Objectobj){if(objinstanceofInteger){//判断当前类型是不是Integer类型returnvalue==((Integer)obj).intValue();//向下转型}returnfalse;}
2.hashCode方法
1.API中hashCode方法的介绍
2.提高具有哈希结构容器的的效率。
3.两个引用,如果指向的同一个对象,哈希值一样,指向不同对象,哈希值就不一样。
4.哈希值主要根据地址来的,但不能将哈希值等价于地址。
3.toString方法
1.API中toString方法的介绍
2.默认返回:全类名(包名+类名)+@+哈希值的十六进制。
3.往往重写toString方法,用于返回对象属性。
4.当直接输出对象时,toString方法会被默认的调用。
//JDK中的toString方法源码publicStringtoString(){returngetClass().getName()+"@"+Integer.toHexString(hashCode());//返回全类名(包名+类名)+@+哈希值的十六进制}//重写toString方法@OverridepublicStringtoString(){return"Person{"+"name='"+name+'\''+",age="+age+",gender="+gender+'}';}//往往重写toString方法,用于返回对象属性。
4.finalize方法
1.API中finalize方法的介绍
2.对象被回收时,系统自动调用该对象的finalize方法。子类可以重写该方法,做一些释放资源的操作。
3.当某个对象没有引用时,jvm就会使用垃圾回收机制来销毁此对象,销毁对象前会先调用finalize方法。
4.垃圾回收机制的调用,是由系统的GC算法来决定的,也可通过System.gc()主动触发。
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
Java Object类方法实例分析的详细内容,希望对您有所帮助,信息来源于网络。