今天咱們說一下java裏面的數組,數組在編程語言裏的意思,至關於離散數學裏面的集合,其意義幾乎徹底同樣,只有一點區別,離散裏有無窮集合,比 如,實數集,可是在java裏是不存在無窮集合的。在java裏,數組就是一些數據的集合。做爲咱們這些菜鳥,大多數狀況下見到的數組,其中的數據都屬於 同一類型。少數狀況下不屬於同一類型,那頗有可能發生了多態現象,並且在訪問數組元素的方法時,極可能產生了動態綁定,這些咱們之後再說。java
好了,讓咱們目前先認爲數組裏的元素都屬於同一類型。那麼,怎樣聲明以及初始化一個數組呢?程序員
聲明一個數組有兩種常見的形式:編程
1. 類型名[] 數組名數組
2.類型名 數組名[]
讓咱們來舉個例子吧,好比咱們想聲明一個名字爲int_array的整型數組,那麼就應該是這樣:int[] int_array,或者這樣:int int_array[]。 同理,String[] sarray 咱們就有了一個名爲sarray的字符串數組。double[] darray 咱們就有了一個名爲darray的浮點型數組。有的程序員喜歡第二種聲明方式,而本人則喜歡第一種聲明方式,由於第一種聲明方式明確的告訴了咱們那是一個 數組,並且後面緊跟數組名,分的很清楚。何況,第二種方式更像C++,我本人比較不一樣意程序員把一個程序語言的習慣帶到別的程序語言中,儘管有時候這樣也 不會出現語法錯誤。編程語言
有一點須要注意,那就是,聲明瞭一個數組,僅僅是聲明,你僅僅是有了這麼一個名稱而已,你能夠認爲計算機爲你的這個數組開闢了一個新的內存地址,但裏面沒 有任何東西。因爲沒有初始化,因此你的這個數組如今是徒有其表,若是你在聲明以後,沒有初始化就想立刻使用這個數組,java就會報錯,好比這樣:測試
咱們看到,這個程序沒法經過編譯,觀察錯誤信息,是這樣的:variabl a might not have been initialized,就是說,變量a也許尚未被初始化。咱們知道,不是也許,真的就沒有初始化。其實不光是數組,任何一個數據,若是你只是聲明,那 是不能直接使用的。blog
好了,下面咱們來看看,如何初始化一個數組呢?初始化數組常見的有以下方式:內存
1. 數組名 = new 類型名[數組長度] (此數組已經被聲明過)字符串
數組名 = {數據1, 數據2, 數據3, ......, 數據n} (此數組已經被聲明過)數學
數組名 = new 類型名[]{數據1, 數據2, 數據3, ......, 數據n} (此數組已經被聲明過)
2. 類型名[] 數組名 = new 類型名[數組長度] (聲明和初始化一塊兒進行)
類型名[] 數組名 = {數據1, 數據2, 數據3, ......, 數據n}(聲明和初始化一塊兒進行)
類型名[] 數組名 = new 類型名[]{數據1, 數據2, 數據3, ......, 數據n}(聲明和初始化一塊兒進行)
3. 類型名 數組名[] = new 類型名[數組長度] (聲明和初始化一塊兒進行)
類型名 數組名[] = {數據1, 數據2, 數據3, ......, 數據n}(聲明和初始化一塊兒進行)
類型名 數組名[] = new 類型名[]{數據1, 數據2, 數據3, ......, 數據n}(聲明和初始化一塊兒進行)
4. 在已經聲明過數組的前提下,使用循環或者其餘操做來給數組初始化或者賦值。
總結一下,最後一種,咱們暫且不提,而前三種形式,其實就是,初始化數組的時候,等號左邊有三種格式,等號右邊也有三種格式。對於數組來講,最多見的使用 方式是這樣的:類型名[] 數組名 = new 類型名[數組長度],好比說:double[] floatarray = new double[100],這樣咱們就聲明並初始化了一個長度爲100,名字爲floatarray的double型數組。
然而,若是咱們以不一樣的方式初始化一個數組,數組裏所含的內容是如何的呢?若是隻是給出了數組的長度,而並無顯示的給出數組中的數據,那麼,若是數組類 型是double,那麼裏面的數都是0.0,若是數組類型是int,那麼裏面的數據都是0,若是數組類型是String,那麼裏面的數據都是null(空 的意思),若是數組類型是boolean,那麼裏面的數據都是false。可是若是顯示的給出了數據,那麼咱們不須要給出數組長度,java將自動得到數 組長度,並且裏面的數據也都已經有了,咱們看一下下面這段測試的程序:
咱們看到,除了最後一個外,其餘幾個數組的內容,都有java按照默認方式進行了初始化,看起來彷佛最後一種方式更好,可是實際上,最後一種方式並 不經常使用,由於通常裏說,數組在剛開始定義的時候其內容並不肯定,每每是須要在程序中動態的進行賦值,因此,讓java給自動賦值,實際上只是走走形式,讓 這個數組可以使用而已。
好了,今天咱們講了數組的聲明以及初始化的基礎知識,之後咱們會講數組的操做。但願各位初學者和本菜鳥一塊兒努力練習,共同進步。