이 기사에서는 Java의 객체 파괴 방법을 더 자세히 분석합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
Java의 기본 데이터 유형 변수 및 객체 이름 참조 변수는 메소드에 정의된 경우 모두 로컬 변수입니다. 그러나 객체 자체가 반드시 지역적 생명주기를 가질 필요는 없습니다. 함수 외부에 객체에 대한 다른 참조 변수가 있는 경우 객체의 수명주기는 다른 참조 변수가 위치한 블록까지 확장됩니다.
값 또는 반환 값이 호출된 함수의 매개변수 참조에서 기본 호출 함수의 객체 유형 변수로 전달되면 객체는 여전히 존재합니다(그러나 호출된 함수 객체의 참조 변수의 수명 주기는 종료되므로 참조 변수는 지역 변수입니다), 이때 개체는 지역 변수의 지역 수명을 중단합니다.
Java 객체 파괴
Java의 가비지 수집기는 자동으로 Java 객체의 동적 메모리를 스캔하고 모든 참조 객체를 표시합니다. 객체가 실행된 후(객체와 연관된 참조 변수가 없음) 해당 표시를 지우고 표시되지 않은 모든 객체는 가비지로 재활용됩니다. 가비지 개체가 차지한 메모리 공간이 해제됩니다.
객체가 실행된 후 또는 수명 주기가 끝나면 가비지 객체가 되지만, 가비지 수집기가 유휴 상태이거나 메모리가 부족할 때만 재활용된다는 의미는 아닙니다.
Java의 모든 객체에는 finalize() 메소드가 있습니다.
protected void finalize()throwable{}
가비지 수집기는 객체를 재활용할 때 자동으로 객체의 finalize() 메서드를 호출하여 시스템 리소스를 해제합니다.
finalize() 함수 프로토타입:
protected void | finalize () 가비지가 있을 때 객체의 가비지 수집기에 의해 호출됩니다.컬렉션에서 더 이상 참조가 없다고 판단합니다. 개체. |