Java中的new關(guān)鍵詞可以創(chuàng)建一個(gè)新的對(duì)象實(shí)例。當(dāng)我們使用new關(guān)鍵字創(chuàng)建一個(gè)對(duì)象時(shí),內(nèi)存中的一塊空間將被分配來(lái)保存該對(duì)象。這個(gè)新的對(duì)象實(shí)例會(huì)被分配一個(gè)唯一的引用,也稱作對(duì)象的地址。
// 創(chuàng)建一個(gè)名為foo的String對(duì)象實(shí)例 String foo = new String("Hello World!");
當(dāng)一個(gè)對(duì)象不再被使用時(shí),程序不會(huì)自動(dòng)將其從內(nèi)存中刪除。程序員需要通過將對(duì)象的引用設(shè)置為null來(lái)解除對(duì)象的引用。這樣,垃圾回收機(jī)制才有可能在適當(dāng)?shù)臅r(shí)候釋放這塊內(nèi)存空間。
// 刪除foo的引用,釋放內(nèi)存空間 foo = null;
null是一個(gè)關(guān)鍵字,表示一個(gè)不確定的值或空值。在Java中,null表示一個(gè)不參與計(jì)算的對(duì)象或者數(shù)組元素的值。當(dāng)調(diào)用一個(gè)被設(shè)置為null的對(duì)象時(shí),將會(huì)拋出NullPointerException異常。
// 定義一個(gè)名為bar的String變量,指向null String bar = null; // 嘗試調(diào)用bar對(duì)象的方法,將會(huì)拋出NullPointerException異常 bar.length();
在編程中,我們應(yīng)該注意創(chuàng)建和銷毀對(duì)象時(shí)的內(nèi)存使用情況,并及時(shí)將不再使用的對(duì)象設(shè)置為null,以便讓垃圾回收機(jī)制及時(shí)回收內(nèi)存空間,提高程序的執(zhí)行效率。