아이템 [8] - finalizer 와 cleaner 사용을 피하라
자바의 객체 소멸자: finalizer(자바 9 부터 deprecated), cleaner(자바 9) 사용하지 말아야 할 이유 1. 사용시기, 사용유무 모두 불확실하고 느리다. System.gc, System.runFinalization 으로 GC 실행의 가능성을 높여줄 수 는 있지만 보장하진 않는다. 2. System,.runFinalizersOnExit, Runtime.runFinalizersOnExit 은 finalizer 실행을 보장하지만 "쓰레드가 멈출 수 있다"는 치명적인 단점이 있다. 3. finalizer 동작 중 예외가 발생하면 마무리가 덜 된 상태로 종료될 수 있다. 4. finalizer 공격에 노출될 수 있다. - A 를 상속받는 B 클래스의 생성자 또는 직렬화 과정에서 except..
책, 강의 정리/이펙티브자바
2020. 1. 10.