27.Object

本文介绍了Java中Object类的equals方法如何用于自定义对象的比较,并通过实例演示了equals方法的重写过程。此外,还讲解了toString方法的重写,展示了如何使输出更加人性化。

Object:是所有对象的直接或者间接父类,传说中的上帝。
该类中定义的肯定是所有对象都具备的方法。

Object类中已经提供了对对象是否相同的比较方法

如果自定义类中也有比较相同的功能,没有必要重新定义
只要沿袭父类中的功能,建立自己特有的比较内容即可,这就是覆盖

public class Object_equals_07 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//比较对象
		/*Demo d1=new Demo();
		Demo d2=new Demo();
		Demo d3=d1;
		System.out.println(d1.equals(d2));  //比较的地址  false
		System.out.println(d1.equals(d3));  //true
		*/
		
		//比较数字
		Demo d4=new Demo(4);
		Demo d5=new Demo(4);
		System.out.println(d4.equals(d5)); //true
		
		Person p=new Person();
		System.out.println(d4.equals(p));  //false
		
	}

}
class Demo{
	private int num;
	Demo(){}
	Demo(int num){
		this.num=num;
	}
	/*public boolean compare(Demo d){
		return this.num==d.num;
	}*/
	
	public boolean equals(Object o){ //Object o=new Demo();
		if(o instanceof Demo){
			Demo d=(Demo)o;
			return this.num==d.num;
		}
		return false;
	}
}	
class Person{
	
}

 

toString() 打印类名@哈希吗

public class Object_toString_08 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Demo1 d1=new Demo1();
		Demo1 d2=new Demo1();
		System.out.println(d1.toString());  
		System.out.println(Integer.toHexString(d1.hashCode()));
		Class c=d1.getClass();
		System.out.println(c.getName()+"@"+Integer.toHexString(d1.hashCode()));
	}
}
class Demo1{
	int num=10;
	public String toString(){
		return "deme:"+num;
	}
}
class Person1{
	
}

  

转载于:https://www.cnblogs.com/syj1993/p/8183536.html

crash日志: 08-19 09:26:57.321 13888 14095 F libc : Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0xb400007300000000 in tid 14095 (initCameraInfo), pid 13888 (om.oplus.camera) 08-19 09:27:02.619 17868 17868 F DEBUG : Process name is com.oplus.camera, uid is 10172, not key_process 08-19 09:27:02.620 17868 17868 F DEBUG : keyProcess: 0 08-19 09:27:02.620 17868 17868 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 08-19 09:27:02.620 17868 17868 F DEBUG : Build fingerprint: 'realme/RMX5253IN/RE644C:15/AP3A.240617.008/V.R4T2.2f4847c-100eb7c-100ecfe:user/release-keys' 08-19 09:27:02.620 17868 17868 F DEBUG : Revision: '0' 08-19 09:27:02.620 17868 17868 F DEBUG : ABI: 'arm64' 08-19 09:27:02.620 17868 17868 F DEBUG : Timestamp: 2025-08-19 09:26:57.959834776+0800 08-19 09:27:02.620 17868 17868 F DEBUG : Process uptime: 91s 08-19 09:27:02.620 17868 17868 F DEBUG : Cmdline: com.oplus.camera 08-19 09:27:02.620 17868 17868 F DEBUG : pid: 13888, tid: 14095, name: initCameraInfo >>> com.oplus.camera <<< 08-19 09:27:02.620 17868 17868 F DEBUG : uid: 10172 08-19 09:27:02.620 17868 17868 F DEBUG : tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE) 08-19 09:27:02.620 17868 17868 F DEBUG : signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0xb400007300000000 08-19 09:27:02.620 17868 17868 F DEBUG : x0 b400007300000000 x1 0000007315411f6f x2 0000000000000000 x3 00000a3a65636172 08-19 09:27:02.620 17868 17868 F DEBUG : x4 0000000000000000 x5 8080000000000000 x6 feff093964626071 x7 7f7f7f7f7f7f7f7f 08-19 09:27:02.620 17868 17868 F DEBUG : x8 6468d103908d46de x9 6468d103908d46de x10 0000000000000002 x11 00000073b640a028 08-19 09:27:02.620 17868 17868 F DEBUG : x12 0000000000000003 x13 00000075ec9a3398 x14 0000000000000001 x15 0000000000000008 08-19 09:27:02.620 17868 17868 F DEBUG : x16 00000073155315d0 x17 0000007314f364a8 x18 000000000000005a x19 b4000073a5cdde20 08-19 09:27:02.620 17868 17868 F DEBUG : x20 0000000000000000 x21 b400007300000000 x22 b4000073a8c0d100 x23 b4000073a5cddd90 08-19 09:27:02.620 17868 17868 F DEBUG : x24 0000000000000000 x25 00000074404aa140 x26 000000748c428108 x27 000000748c428100 08-19 09:27:02.620 17868 17868 F DEBUG : x28 000000748c428110 x29 000000748c427f60 08-19 09:27:02.620 17868 17868 F DEBUG : lr 0000007314f47720 sp 000000748c427f50 pc 0000007314f364b4 pst 0000000060001000 08-19 09:27:02.620 17868 17868 F DEBUG : 21 total frames 08-19 09:27:02.620 17868 17868 F DEBUG : backtrace: 08-19 09:27:02.620 17868 17868 F DEBUG : #00 pc 00000000000b54b4 /odm/lib64/libXDocProcessSDK.so (xsdk::XDocDetector::~XDocDetector()+12) (BuildId: fc607651bf45e25a3db1441a3a35ff1c435e2a55) 08-19 09:27:02.620 17868 17868 F DEBUG : #01 pc 00000000000c671c /odm/lib64/libXDocProcessSDK.so (xsdk::QuadDetector::Init(unsigned char const*, unsigned long, int)+168) (BuildId: fc607651bf45e25a3db1441a3a35ff1c435e2a55) 08-19 09:27:02.620 17868 17868 F DEBUG : #02 pc 00000000000100fc /odm/lib64/libSuperTextWrapper.so (xnnInitedByByte+116) (BuildId: ae32866688049b7aabb663b359b94fc994d77513) 08-19 09:27:02.620 17868 17868 F DEBUG : #03 pc 000000000001329c /product/lib64/libXDocProcessSDK-jni.so (Java_com_youtu_ocr_docprocess_DocDetector_xnnInitedByByte+88) (BuildId: d3b90c13fb4c862fc9f126b36f9cd89338665a31) 08-19 09:27:02.620 17868 17868 F DEBUG : #04 pc 00000000000c91cc /system/framework/arm64/boot.oat (art_jni_trampoline+124) (BuildId: 8a0148760ce648144175623fdb3235cc5d70660c) 08-19 09:27:02.620 17868 17868 F DEBUG : #05 pc 0000000000782420 /apex/com.android.art/lib64/libart.so (nterp_helper+4016) (BuildId: 4ccb65ae9ac5ad5da3af5a342d5b0b92) 08-19 09:27:02.620 17868 17868 F DEBUG : #06 pc 000000000012b588 /product/app/OplusCamera/OplusCamera.apk (com.oplus.ocs.camera.SuperTextHelper.xnnInitedByByte+4) 08-19 09:27:02.620 17868 17868 F DEBUG : #07 pc 00000000007823c4 /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 4ccb65ae9ac5ad5da3af5a342d5b0b92) 08-19 09:27:02.621 17868 17868 F DEBUG : #08 pc 00000000000a5be2 /product/app/OplusCamera/OplusCamera.apk (com.oplus.camera.feature.sticker.ui.n.run+722) 08-19 09:27:02.621 17868 17868 F DEBUG : #09 pc 00000000007831e4 /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: 4ccb65ae9ac5ad5da3af5a342d5b0b92) 08-19 09:27:02.621 17868 17868 F DEBUG : #10 pc 00000000000efede /product/app/OplusCamera/OplusCamera.apk (d6.g$a.run+50) 08-19 09:27:02.621 17868 17868 F DEBUG : #11 pc 0000000000338070 /system/framework/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor.runWorker+784) (BuildId: 8a0148760ce648144175623fdb3235cc5d70660c) 08-19 09:27:02.621 17868 17868 F DEBUG : #12 pc 0000000000334338 /system/framework/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor$Worker.run+56) (BuildId: 8a0148760ce648144175623fdb3235cc5d70660c) 08-19 09:27:02.621 17868 17868 F DEBUG : #13 pc 00000000001bb790 /system/framework/arm64/boot.oat (java.lang.Thread.run+64) (BuildId: 8a0148760ce648144175623fdb3235cc5d70660c) 08-19 09:27:02.621 17868 17868 F DEBUG : #14 pc 0000000000368774 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612) (BuildId: 4ccb65ae9ac5ad5da3af5a342d5b0b92) 08-19 09:27:02.621 17868 17868 F DEBUG : #15 pc 0000000000353f24 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+132) (BuildId: 4ccb65ae9ac5ad5da3af5a342d5b0b92) 08-19 09:27:02.621 17868 17868 F DEBUG : #16 pc 0000000000947748 /apex/com.android.art/lib64/libart.so (art::detail::ShortyTraits<(char)86>::Type art::ArtMethod::InvokeInstance<(char)86>(art::Thread*, art::ObjPtr<art::mirror::Object>, art::detail::ShortyTraits<>::Type...)+60) (BuildId: 4ccb65ae9ac5ad5da3af5a342d5b0b92) 08-19 09:27:02.621 17868 17868 F DEBUG : #17 pc 0000000000636e80 /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1344) (BuildId: 4ccb65ae9ac5ad5da3af5a342d5b0b92) 08-19 09:27:02.621 17868 17868 F DEBUG : #18 pc 0000000000636930 /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallbackWithUffdGc(void*)+8) (BuildId: 4ccb65ae9ac5ad5da3af5a342d5b0b92) 08-19 09:27:02.621 17868 17868 F DEBUG : #19 pc 00000000000a67a4 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+196) (BuildId: b963824e1119e1e9ec07440f1ee81f14) 08-19 09:27:02.621 17868 17868 F DEBUG : #20 pc 0000000000097b20 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: b963824e1119e1e9ec07440f1ee81f14) android日志: 行 236711: 08-19 09:27:02.215 13888 13888 V OCAM_PreviewExceptionProcessor: prePostPreviewException delay: 5000 行 236711: 08-19 09:27:02.215 13888 13888 V OCAM_PreviewExceptionProcessor: prePostPreviewException delay: 5000 行 237467: 08-19 09:27:02.326 13888 14751 E CameraUnit, Camera2Impl: checkSmaWireStatusAndModuleIdArrived, key does not exist: java.lang.IllegalArgumentException: Could not find tag for key 'com.oplus.double.ois.wirecutoff.detection.sn') 行 238996: 08-19 09:27:02.716 18002 18002 D AEE_AED : Duplicated exception, cnt = 2 行 238997: 08-19 09:27:02.716 18002 18002 D AEE_AED : Last exception time: 1755541196 行 239224: 08-19 09:27:02.749 18002 18002 I AEE_AED : $** *** *** *** *** *** *** *** Exception *** *** *** *** *** *** *** **$ 行 239854: 08-19 09:27:02.888 01383 18049 E ifunc_camsv: [vendor/mediatek/proprietary/hardware/mtkcam/drv/src/isp/isp_6s/imageio/drv/cam/isp_function_camsv.cpp, waitBufReady, line1155] ERROR: [0x9]:, m_buf_cnt(0), waitbufready fail is caused by no enque (waitBufReady){#1155:vendor/mediatek/proprietary/hardware/mtkcam/drv/src/isp/isp_6s/imageio/drv/cam/isp_function_camsv.cpp} 行 240135: 08-19 09:27:02.985 18002 18002 I AEE_AED : Exception Log Time:[Tue Aug 19 09:27:02 CST 2025] [70030.923036] 行 240137: 08-19 09:27:02.985 18002 18002 I AEE_AED : Exception Class: Native (NE) 行 240138: 08-19 09:27:02.985 18002 18002 I AEE_AED : Exception Type: SIGSEGV 行 240145: 08-19 09:27:02.986 18002 18002 I AEE_AED : $** *** *** *** *** *** *** *** Exception *** *** *** *** *** *** *** **$ 行 240337: 08-19 09:27:03.083 01733 18054 W AES : Exception Log handling... 行 240370: 08-19 09:27:03.088 01733 18054 D AES : ExceptionLog: notify aed, process:com.oplus.camera pid:13888 cause:system_app_native_crash 行 240524: 08-19 09:27:03.109 13888 14798 V OCAM_PreviewExceptionProcessor: removePreviewException 行 240524: 08-19 09:27:03.109 13888 14798 V OCAM_PreviewExceptionProcessor: removePreviewException 行 240884: 08-19 09:27:03.252 01733 01883 D callGcSupression: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference 行 241592: 08-19 09:27:03.623 13888 13888 D callGcSupression: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference 行 241637: 08-19 09:27:03.631 02552 02552 D callGcSupression: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference 行 241757: 08-19 09:27:03.695 01383 18049 E ifunc_camsv: [vendor/mediatek/proprietary/hardware/mtkcam/drv/src/isp/isp_6s/imageio/drv/cam/isp_function_camsv.cpp, waitBufReady, line1155] ERROR: [0x9]:, m_buf_cnt(0), waitbufready fail is caused by no enque (waitBufReady){#1155:vendor/mediatek/proprietary/hardware/mtkcam/drv/src/isp/isp_6s/imageio/drv/cam/isp_function_camsv.cpp} 行 241785: 08-19 09:27:03.696 13888 13888 V OCAM_PreviewExceptionProcessor: removePreviewException 行 241785: 08-19 09:27:03.696 13888 13888 V OCAM_PreviewExceptionProcessor: removePreviewException 行 242241: 08-19 09:27:03.765 15375 15375 D callGcSupression: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference 行 242466: 08-19 09:27:03.821 01733 01887 D callGcDesupression: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference 行 242477: 08-19 09:27:03.824 02276 02276 D callGcSupression: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference 行 243654: 08-19 09:27:04.292 15375 15375 D callGcSupression: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference 行 243662: 08-19 09:27:04.298 02276 02276 D callGcSupression: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference 行 243671: 08-19 09:27:04.307 13888 13888 D callGcSupression: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference 行 243692: 08-19 09:27:04.322 02552 02552 D callGcSupression: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference 行 243871: 08-19 09:27:04.443 02552 02552 D OplusGcSupressionExtImpl: callGcSupression : java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference 行 243902: 08-19 09:27:04.451 02552 02552 D callGcSupression: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference 行 243912: 08-19 09:27:04.452 02552 02552 D OplusGcSupressionExtImpl: callGcDesupression : java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference 行 244302: 08-19 09:27:04.713 18094 18094 D OplusActivityThreadExtImpl: java.lang.NoSuchMethodException: dalvik.system.VMRuntime.SupressionGC [int, int] 行 244306: zv69jrUu7c:0 android.view.InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda1.run:0 android.os.Handler.handleCallback:995 android.os.Handler.dispatchMessage:105 android.os.Looper.loopOnce:288 android.os.Looper.loop:393 com.android.launcher.monitor.exception.MainThreadExceptionMonitor.startWatching$lambda$2:15 com.android.launcher.monitor.exception.MainThreadExceptionMonitor.gda:1 行 244306: .view.InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda1.run:0 android.os.Handler.handleCallback:995 android.os.Handler.dispatchMessage:105 android.os.Looper.loopOnce:288 android.os.Looper.loop:393 com.android.launcher.monitor.exception.MainThreadExceptionMonitor.startWatching$lambda$2:15 com.android.launcher.monitor.exception.MainThreadExceptionMonitor.gda:1 行 244306: :0 android.os.Handler.handleCallback:995 android.os.Handler.dispatchMessage:105 android.os.Looper.loopOnce:288 android.os.Looper.loop:393 com.android.launcher.monitor.exception.MainThreadExceptionMonitor.startWatching$lambda$2:15 com.android.launcher.monitor.exception.MainThreadExceptionMonitor.gda:1 行 244306: r.handleCallback:995 android.os.Handler.dispatchMessage:105 android.os.Looper.loopOnce:288 android.os.Looper.loop:393 com.android.launcher.monitor.exception.MainThreadExceptionMonitor.startWatching$lambda$2:15 com.android.launcher.monitor.exception.MainThreadExceptionMonitor.gda:1 行 244340: 08-19 09:27:04.769 13888 13888 D callGcSupression: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference 行 244363: 08-19 09:27:04.784 18094 18110 D OplusAppHeapManager: java.lang.NoSuchMethodException: dalvik.system.VMRuntime.updateProcessValue [int, int, int] 行 244409: 08-19 09:27:04.800 18094 18094 D callGcSupression: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference 请排查问题
09-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值