1. 程式人生 > >Java陣列中的小細節

Java陣列中的小細節

寫在前面

初學一門語言的時候,很多東西以為已經掌握了,對於一些看似比較簡單的知識甚至於不屑於去懷疑,可是最近幾天的學習過程中,我閱讀了一些書籍,卻發現,即使一個最簡單的東西,其中也包含著許多細節,書中隨便丟擲一個問題,想要去回答並不是那麼的簡單,這就是細節問題。而這些細節將會決定對程式語言的熟練度,所以本篇部落格將會記錄一個很簡單的東西———陣列,但是其中很多問題並非是粗淺的學會使用陣列就可以理解的,這一切我都是參照著李剛的書《瘋狂java系列:突破程式設計師基本的16課》而寫,可以作為該書的閱讀筆記吧。

陣列的初始化

陣列的初始化是使用陣列的第一步,但是下面有幾個問題等待著解答。
1.什麼是陣列的初始化


陣列的初始化是在陣列宣告時,對陣列各個元素第一次賦值的過程。
2.java陣列初始化有哪幾種方式,分別簡要說明
兩種方式

  • 靜態初始化
    初始化時由程式設計師顯示自定陣列元素的初始值,由系統決定陣列長度。
  • 動態初始化
    初始化時程式設計師只指定長度,系統自定為陣列元素分配初始值

3.陣列一定要初始化麼
陣列物件一定要初始化,無論是靜態初始化還是動態初始化,未初始化的陣列物件不能使用,但有時候我們回混淆陣列物件和陣列變數,對於陣列變數來說可以不初始化。
4.簡要說明什麼是陣列物件和陣列變數
陣列物件分配在堆記憶體中,是儲存了固定長度陣列元素的連續記憶體空間,但是陣列物件不能直接使用。陣列變數是一種指向陣列物件的引用型別,分配在方法棧中,只有通過陣列變數才能使用陣列物件。

使用陣列

java語言不能對堆記憶體進行直接的訪問,同時java中引入了引用型別。在陣列中,如果想要訪問陣列物件,就需要使用陣列變數。同時如果某個陣列物件沒有陣列變數引用時,它將不能使用,並且會被垃圾回收器回收釋放。

多維陣列

java中沒有多維陣列,但是允許將多維陣列當做一維陣列來處理,所謂的多維陣列就是陣列元素為陣列引用的一維陣列。每個陣列元素將會指向另一個數組,從而實現多維陣列的使用。

有關陣列的一些面試題

這裡不直接列出來,我將在日後的學習中,將這些題目進行一次整理,並提供文章的連結。

最後

我自以為這篇文章會很長的,而那本書使用了一個章節來講述陣列的細節,沒想到最後總結起來,我認為重要的東西只有這麼點,也或許是因為其他的內容已經熟悉而不那麼重要吧,但大師寫的書就是牛逼,很多地方真不是我們這些菜鳥可以想到的,好了,該離開圖書館了,有的東西以後補充吧。