java陣列的定義初始化關於記憶體的理解

2021-08-07 18:48:16 字數 1592 閱讀 4933

壹:

對於陣列的定義有以下的兩種方式:

<1> type  var = null;

<2>type var = null;

package base;

public class arraydefinition

}

貳:然而對於陣列的初始化,可以分為兩種即為靜態初始化和動態初始化(有的地方說是還有一種「隱士初始化」,但我個人認為兩種就可以啦

<1>靜態初始化:所謂靜態初始化是指的在定義陣列的時候就為陣列元素分配空間並賦值

<2>動態初始化:陣列的定義,陣列的空間分配,還有陣列元素賦值分開操作

(補:<3>隱士初始化即按照陣列的成員變數規則,給其賦值(堆記憶體都有初始值)。。。規則如下

1、int ,byte ,short ,long                            0

2、float ,double                                       0.0

3、boolean                                             false

4、char                                                \u0000

5、引用型別的如陣列,類,介面            null )

package base;

public class arraydefinition ;

for(int i = 0;i

0 0 0 0 0 

1 4 5 

叄:

在這裡重點講一下注意事項:

<1>再定義陣列的時候不能宣告指出陣列的大小。因為陣列的定義只是單單的定義乙個指標只是棧裡面的乙個變數,並沒有指向什麼位址,像以上**指的就是null

<2>執行的時候才進行的建立的過程(堆裡面),只有執行的時候才會建立實體所以以下的**編譯的時候不會出錯

var2 = new int;

system.out.println(var2[3]);//編譯的時候沒有問題。執行的時候才會報錯
<3>靜態初始化與動態初始化不能同時進行,通俗點就是不能既規定了陣列的長度又給每個陣列元素賦了值

在網上經常有網友會問為什麼或者靜態與動態初始化的區別,其實是個定義理解的

靜態是:

已經存放了自己知道的且不改變的資料

動態是:

宣告時候只是給陣列分配了記憶體大小空間,空間裡除了初始值什麼也沒有,實際放什麼值是要由後面的程式來指定的,因為一開始放什麼,我們也許也並不清楚

肆:

綜上有以下三種陣列對於定義初始化:

<1>type arr = new type[length]

<2>type arr = new type

<3>type arr =

Java中陣列的定義及初始化

1.定義及初始化 1.1動態初始化 宣告並開闢陣列 陣列型別 陣列名 new 資料型別 陣列長度 其中,資料型別可以是8種基本的資料型別,也可以是引用資料型別。注意 資料型別 預設初始化 byte short int long 0foat double 0.0char 乙個空字元,即 u0000 b...

Java自學 陣列 初始化陣列

步驟 1 分配空間與賦值分步進行 public class helloworld 步驟 2 分配空間,同時賦值 public class helloworld 寫法二 省略了new int,效果一樣 int b 寫法三 同時分配空間,和指定內容 在這個例子裡,長度是3,內容是5個,產生矛盾了 所以如...

陣列的定義與初始化

人們借助計算機來記錄每月的開支 日降水量 季度銷售額 企業可以借助計算機來管理員工薪水 倉庫存貨清單等等。採用陣列可以有效便捷地處理各種型別的資料。陣列 array 是由一系列型別相同的元素構成。可以使用申明來告訴編譯器需要乙個陣列,包含陣列元素的型別和陣列元素的數目。簡單陣列的定義char cod...