1.9 匿名对象
經過前面的學習,我們知道創建對象的標準格式如下:
類名稱 對象名 = new 類名稱();每次 new 都相當于開辟了一個新的對象,并開辟了一個新的物理內存空間。如果一個對象只需要使用唯一的一次,就可以使用匿名對象,匿名對象還可以作為實際參數傳遞。
匿名對象就是沒有明確的給出名字的對象,是對象的一種簡寫形式。一般匿名對象只使用一次,而且匿名對象只在堆內存中開辟空間,而不存在棧內存的引用。
public class Person {public String name; // 姓名public int age; // 年齡// 定義構造方法,為屬性初始化public Person(String name, int age) {this.name = name;this.age = age;}// 獲取信息的方法public void tell() {System.out.println("姓名:" + name + ",年齡:" + age);}public static void main(String[] args) {new Person("張三", 30).tell(); // 匿名對象} }程序運行結果為:
姓名:張三,年齡:30在以上程序的主方法中可以發現,直接使用了“new Person("張三",30)”語句,這實際上就是一個匿名對象,與之前聲明的對象不同,此處沒有任何棧內存引用它,所以此對象使用一次之后就等待被 GC(垃圾收集機制)回收。
匿名對象在實際開發中基本都是作為其他類實例化對象的參數傳遞的,在后面的 Java 應用部分的很多地方都可以發現其用法,而且細心的讀者可以發現,匿名對象實際上就是個堆內存空間,對象不管是匿名的還是非匿名的,都必須在開辟堆空間之后才可以使用。
總結
- 上一篇: 1.8 深入解析new运算符
- 下一篇: 1.2 Object类详解