"์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ 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๋กœ ์„ค์ •ํ•˜์—ฌ). ์ด ๋ฐฉ๋ฒ•์˜ ์žฅ์ ๊ณผ ๋‰˜์•™์Šค๋Š” ๋‚˜์ค‘์— ์ž์„ธํžˆ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. , ๋‘ ๊ฐ€์ง€๋งŒ ์ดํ•ดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๊ณ  ( ๋†€๋ž๊ฒŒ๋„! ) ํ•ญ์ƒ ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค."