"์๋ ํ์ธ์. ์ค๋์ finalize () ๋ฉ์๋์ ๋ํด ๊ฐ๋จํ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. Java Virtual Machine์ ๊ฐ์ฒด๋ฅผ ์๋ฉธ์ํค๊ธฐ ์ ์ finalize () ๋ฉ์๋๋ฅผ ํธ์ถํฉ๋๋ค. ์ด ๋ฉ์๋๋ ์์คํ ๋ฆฌ์์ค ํ ๋น์ ํด์ ํ๊ฑฐ๋ ๊ธฐํ ์ ๋ฆฌ ์์ ์ ์ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ฌ์ค ์ด ๋ฉ์๋๋ ๋ฉ์๋๋ Java์ ์์ฑ์์ ์ ๋ฐ๋์ ๋๋ค. ์์ฑ์๊ฐ ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๋ฐ ์ฌ์ฉ๋๋ค๋ ๊ฒ์ ๊ธฐ์ตํ ๊ฒ์ ๋๋ค."
"Object ํด๋์ค์๋ finalize () ๋ฉ์๋๊ฐ ์์ต๋๋ค. ์ฆ, ๋ค๋ฅธ ๋ชจ๋ ํด๋์ค๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค( ๋ชจ๋ Java ํด๋์ค๋ Object ํด๋์ค์์ ํ์๋๊ธฐ ๋๋ฌธ์ ๋๋ค ). ํด๋์ค์์ ๊ณ ์ ํ finalize () ๋ฉ์๋๋ฅผ ๊ฐ๋จํ ๊ตฌํํ ์ ์์ต๋๋ค ."
"๋ค์์ ์์ ๋๋ค."
class Cat
{
String name;
Cat(String name)
{
this.name = name;
}
protected void finalize() throws Throwable
{
System.out.println(name + " has been destroyed");
}
}
"๋ง์ด ๋๋ค์, ์๋ฆฌ."
"ํ์ง๋ง Java Virtual Machine์ด ์ด ๋ฉ์๋๋ฅผ ํธ์ถํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ค๋ ์ ์ ์์์ผ ํฉ๋๋ค . ๋ฉ์๋ ๋ด๋ถ์์ ์์ฑ๋๊ณ ๋ฉ์๋๊ฐ ์๋ฃ๋ ๋ ์ฐ๋ ๊ธฐ๋ก ์ ์ธ๋ ๊ฐ์ฒด๋ finalize ()๋ฅผ ํธ์ถํ์ง ์๊ณ ์ฆ์ ์๋ฉธ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค . ์ด ๋ฉ์๋๋ ๊ทธ ์ด์์ ๋๋ค . ์ ๋ขฐํ ์ ์๋ ์๋ฃจ์ ๋ณด๋ค ๋ฐฑ์ ๊ณผ ๊ฐ์ ๊ฒ์ ๋๋ค. ๊ฐ์ฅ ์ข์ ์ต์ ์ ๊ฐ์ฒด๊ฐ ์์ง ์ด์์๋ ๋์ ๋ชจ๋ ์์คํ ๋ฆฌ์์ค๋ฅผ ํด์ ํ๋ ๊ฒ์ ๋๋ค(๋ค๋ฅธ ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๋ฅผ null๋ก ์ค์ ํ์ฌ). ์ด ๋ฐฉ๋ฒ์ ์ฅ์ ๊ณผ ๋์์ค๋ ๋์ค์ ์์ธํ ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค. , ๋ ๊ฐ์ง๋ง ์ดํดํ๋ฉด ๋ฉ๋๋ค. ์ด๋ฌํ ๋ฉ์๋๊ฐ ์๊ณ ( ๋๋๊ฒ๋! ) ํญ์ ํธ์ถ๋๋ ๊ฒ์ ์๋๋๋ค."
GO TO FULL VERSION