亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

數組是原始類型還是對象(或其他完全不同的東西)?

數組是原始類型還是對象(或其他完全不同的東西)?

這個問題基本上是不言自明的。我無法找到數組的API(除了這個數組,但這只是定義了一堆用于處理實際數組的靜態輔助函數)。如果沒有它的類,這似乎表明一個數組不能是一個Object。但是,一個數組具有公共字段length和它可以調用的方法這樣的事實,.equals()并且.clone()似乎(非常強烈地)建議完全相反。對于原始數組的奇怪表示和行為有什么解釋?作為一個注釋,我試著在.clone()剛才的數組方法上使用“Open Implementation”Eclipse特性,希望我能夠看看這個方法的定義位置和方法(因為它說int []覆蓋了它對象),但它實際上導致我的整個Eclipse凍結并崩潰......
查看完整描述

3 回答

?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

每個數組類型都有一個類,所以有一個類int[],有一個類Foo[]。這些類由JVM創建。你可以通過int[].class,訪問它們Foo[].class。這些類的直接超類是Object.class


public static void main(String[] args)

{

    test(int[].class);

    test(String[].class);

}


static void test(Class clazz)

{

    System.out.println(clazz.getName());

    System.out.println(clazz.getSuperclass());

    for(Class face : clazz.getInterfaces())

        System.out.println(face);

}

還有一個編譯時亞型規則,如果A是的亞型B,A[]是的亞型B[]。


查看完整回答
反對 回復 2019-09-02
?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

在Java語言規范應該給你一個想法:


數組類型的直接超類是Object。


每種數組類型都實現了接口Cloneable和java.io.Serializable。


而且:


對象是類實例或數組。


因此數組不是實例,因此您不需要構造函數來創建它們。而是使用陣列創建表達式。


查看完整回答
反對 回復 2019-09-02
  • 3 回答
  • 0 關注
  • 800 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號