java finalize 메소드 : 언제 실행될지 모른다.
finalize 함수는 Object 클래스에 있는 메서드입니다. 공식 문서에서는 아래와 같이 설명하고 있습니다. 여기서 중요한 것은, gc가 해당 object를 참조하는 레퍼런스가 없을 때 Call 한다는 것입니다. 예제 프로그램을 몇 개 보면서 이해해 보도록 하겠습니다. 1번째 프로그램입니다. Obj는 Object를 상속받습니다. 따라서, finalize를 오버라이딩 할 수 있습니다. finalize가 gc에 의해서 호출이 되면, Common.rm이 증가하게 되는데요. 새로운 Obj 객체 1000만개를 생성하기만 했습니다. 그리고 80초동안 sleep을 시키고, Common.rm을 출력하였습니다. 1000만이 출력되지 않았다는 것이 중요합니다. 100개의 Obj를 새로 생성한 다음에 Common.rm을..
코딩/Java
2020. 7. 11. 20:03
최근댓글