1. 程式人生 > >數組及其在內存中的分配

數組及其在內存中的分配

數組長度 靜態初始化 變量名 基本數據類型 一維數組 組元 null 方法 lean

1.一維數組
  • 數組概念:數組是儲存同一種數據類型多個元素的集合。也可以看成是一個容器。它既可以存儲基本數據類型,也可以存儲引用數據類型(後面介紹)。
  • 定義格式1: 數據類型[] 數組名;
    ??格式2: 數據類型 數組名[];
  • 數組的初始化動態初始化
    ??數組的初始化:數組必須先初始化,然後才能使用,就是為數組中的數組元素分配內存空間,並為每個數組元素賦值
    ??初始化分類:
    ????(1)動態初始化:只指定長度,由系統給出初始化值;
    ????(2)靜態初始化:給出初始化值,由系統決定長度。
    ????註意:這兩種方式只能用一種,不能進行動靜結合。
    ??動態初始化格式:
    ????數據類型[] 數組名 = new 數據類型[數組長度];
    ????數組長度其實就是數組中元素的個數。

    2.二維數組

  • 格式1:數據類型[][] 變量名 = new 數據類型[m][n];
    ??m表示這個二維數組有多少個一維數組,n表示每一個一維數組的元素個數。
    ??以下格式也可以表示二維數組(不推薦使用)
    ????a.數據類型 數組名[][] = new 數據類型[m] [n];
    ????b.數據類型[] 數組名[] = new 數據類型[m] [n];
    格式2:數據類型[] [] 變量名 = new 數據類型[m] [];
    格式3:數據類型[] [] 變量名 = new 數據類型[] []{{元素···},{元素···}....}

    3.數組在內存中的分配

  • 棧:存放局部變量
    ??局部變量:在方法定義中或者方法聲明上的變量。
  • 堆:存放的是所用new出來的東西
    ??特點:(1)每一個new出來的東西都會為其分配一個地址值;
    ????(2)每一個變量都有一個默認的值
    ??????byte,short,int,long--0
    ??????float,double---0.0
    ??????char--‘\u0000’
    ??????boolean--false
    ??????引用數據類型--null
    ????(3)使用完畢就變成了垃圾,等待垃圾回收器對其回收。
  • 方法區
  • 本地方法區(和系統有關)
  • 寄存器(CPU使用)

數組及其在內存中的分配