第4章 初始化和清除
“隨著計算機的進(jìn)步撬呢,‘不安全’的程序設(shè)計已成為造成編程代價高昂的罪魁禍?zhǔn)字弧鞠呈!?/p>
“初始化”和“清除”是這些安全問題的其中兩個藐唠。許多C程序的錯誤都是由于程序員忘記初始化一個變量造成的。對于現(xiàn)成的庫爆土,若用戶不知道如何初始化庫的一個組件椭懊,就往往會出現(xiàn)這一類的錯誤。清除是另一個特殊的問題步势,因為用完一個元素后氧猬,由于不再關(guān)心,所以很容易把它忘記坏瘩。這樣一來盅抚,那個元素占用的資源會一直保留下去,極易產(chǎn)生資源(主要是內(nèi)存)用盡的后果倔矾。
C++為我們引入了“構(gòu)建器”的概念妄均。這是一種特殊的方法,在一個對象創(chuàng)建之后自動調(diào)用。Java也沿用了這個概念丛晦,但新增了自己的“垃圾收集器”奕纫,能在資源不再需要的時候自動釋放它們。本章將討論初始化和清除的問題烫沙,以及Java如何提供它們的支持匹层。