Object는 모든 클래스의 상위 클래스이며 모든 클래스는 기본적으로 Object를 상속합니다. Object 클래스는 어떤 메소드를 구현합니까?
1. 객체의 얕은 복사본을 구현하기 위한 Clone 메서드
이 메서드는 Cloneable 인터페이스가 구현된 경우에만 호출할 수 있습니다. 그렇지 않으면 CloneNotSupportedException 예외가 발생합니다.
2.getClass 메서드
런타임 유형을 가져오는 최종 메서드입니다.
3. toString 메서드
이 메서드는 자주 사용되며 일반적으로 하위 클래스에서 다룹니다.
4. Finalize 방법
이 방법은 리소스를 해제하는 데 사용됩니다. 이 메서드는 언제 호출되는지 확인할 수 없기 때문에 거의 사용되지 않습니다.
5.Equals method
이 방법은 매우 중요한 방법입니다. 일반적으로 같음과 ==는 다르지만 Object에서는 동일합니다. 서브클래스는 일반적으로 이 메서드를 재정의합니다.
6. hashCode 메서드
이 메서드는 해시 검색에 사용됩니다. equals 메서드를 재정의하는 경우 일반적으로 hashCode 메서드를 다시 작성해야 합니다. 이 방법은 해시 함수가 있는 일부 컬렉션에서 사용됩니다.
일반적으로 obj1.equals(obj2)==true
를 만족해야 합니다. obj1.hash-Code()==obj2.hashCode()
라고 추론할 수 있지만, hashCode가 동일하다고 해서 반드시 equals
를 만족하는 것은 아닙니다. 그러나 효율성을 높이기 위해서는 위의 두 조건을 최대한 동일하게 만들도록 노력해야 합니다. obj1.equals(obj2)==true
。可以推出obj1.hash-Code()==obj2.hashCode()
,但是hashCode相等不一定就满足equals
。不过为了提高效率,应该尽量使上面两个条件接近等价。
7、wait方法
wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait()方法一直等待,直到获得锁或者被中断。wait(longtimeout)
设定一个超时间隔,如果在规定时间内没有获得锁就返回。
调用该方法后当前线程进入睡眠状态,直到以下事件发生。
(1)其他线程调用了该对象的notify方法。
(2)其他线程调用了该对象的notifyAll方法。
(3)其他线程调用了interrupt中断该线程。
(4)时间间隔到了。
此时该线程就可以被调度了,如果是被中断的话就抛出一个InterruptedException
7. 대기 방법
대기 방법은 현재 스레드가 개체의 잠금을 기다리도록 하는 것입니다. 즉, 개체에 대한 잠금이 있어야 합니다. wait() 메서드는 잠금이 획득되거나 중단될 때까지 기다립니다.wait(longtimeout)
타임아웃 간격을 설정하고 지정된 시간 내에 잠금을 획득하지 못한 경우 반환됩니다. 이 메서드를 호출한 후 현재 스레드는 다음 이벤트가 발생할 때까지 절전 상태에 들어갑니다. (1) 이 객체의 알림 메서드를 호출하는 다른 스레드입니다.
(2) 이 개체의 informAll 메서드를 호출하는 다른 스레드입니다. (3) 다른 스레드가 인터럽트를 호출하여 스레드를 중단합니다. 이때 스레드가 중단되면InterruptedException
예외가 발생합니다. 🎜🎜🎜8. 알림 메소드🎜🎜🎜이 메소드는 객체를 기다리고 있는 스레드를 깨웁니다. 🎜🎜🎜9. informAll 메소드🎜🎜🎜이 메소드는 이 객체를 기다리고 있는 모든 스레드를 깨웁니다. 🎜🎜추천 튜토리얼: 🎜Java 개발 시작하기🎜🎜위 내용은 Java에서 Object 클래스의 메소드는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!