item 8 sungjaeyoon - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki
finalizer์ cleaner ์ฌ์ฉ์ ํผํ๋ผ
์๋ฐ๋ ๋ ๊ฐ์ง ๊ฐ์ฒด ์๋ฉธ์์ธ finalizer์ cleaner๋ฅผ ์ ๊ณตํ๋ค.
finalizer๋ ์์ธกํ ์ ์๊ณ , ์ํฉ์ ๋ฐ๋ผ ์ํํ์ฌ ์ฐ์ง ๋ง์์ผํ๋ค.
๋ํ cleaner๋ ์ฌ์ ํ ์์ธกํ ์ ์๊ณ ๋๋ฆฌ๋ฉฐ ๋ถํ์ํ๋ค.
์ฌ์ฉ์ ํผํด์ผ ํ๋ ์ด์
- ์ธ์ ์คํ๋ ์ง ์ ์ ์๋ค.
- ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ๋ค.
- finalize์์ ๋ฐ์ํ ์์ธ๋ ๋ฌด์๋์ด ์ ์ ์๋ค.
finalizer์ cleaner ๋ฅผ ์ฐ๋ ๊ณณ
์์ ๋ฐ๋ฉ์ ์ธ close ๋ฉ์๋๋ฅผ ํด๋ผ์ด์ธํธ๊ฐ ํธ์ถํ์ง ์์๋ค๋ฉด ์ฌ์ฉํ ๋ง ํ๋ค.
finalizer๋ Cleaner๊ฐ ํธ์ถ๋ ์ง ์๋ ์ง ์ธ์ ํธ์ถ๋ ์ง๋ ๋ชจ๋ฅธ์ง๋ง ์ํ๋ ๊ฒ ๋ณด๋ค๋ ๋์ผ๋ ์ฌ์ฉํ ๋ง ํ๋ค.
์๋ฐ์์ ์ ๊ณตํ๋ FileInputStream
, FileOutputStream
, ThreadPoolExecutor
๊ฐ ๋ํ์ ์ด๋ค.
์ ๋ฆฌ
cleaner(์๋ฐ 8 ๊น์ง๋ finalizer)๋ ์์ ๋ง ์ญํ ์ด๋ ์ค์ํ์ง ์์ ์์ ํ์์ฉ์ผ๋ก๋ง ์ฌ์ฉํ์.
๋ฌผ๋ก ์ด ๊ฒฝ์ฐ๋ผ๋ ๋ถํ์ค์ฑ๊ณผ ์ฑ๋ฅ ์ ํ์ ์กฐ์ฌํ์ฌ์ผ ํ๋ค.