未知數據

          從頭看Java

             ::  :: 聯系 :: 聚合  :: 管理
            28 Posts :: 0 Stories :: 10 Comments :: 0 Trackbacks

           

          1. 定義

              1. 同一個數組中只能存儲一種數據類型的數據

              2. 存儲的數據類型可以是基本數據類型,也可以是引用數據類型

              3. 數組也是一種類型,是一種引用數據類型.所以數組在定義的時候并未分配內存.

          2. 初始化

              1. 靜態初始化

                  由程序員顯示指定每個數組元素的初始值,由系統決定需要的數組長度

              2. 動態初始化

                  由系統程序員指定數組長度,由系統按照數據類型指定數組元素初始值.

              數組的初始化過程,就是為數組的數組元素分配內存空間的過程.靜態初始化和動態初始化不能同時進行,

          也就是不能即指定數組長度,又為數組元素指定初始值.

              如果數組是引用類型的,每個數組元素中的數據就是引用數據類型,這時的引用數據類型是保存在堆內存中

          的,而每個引用數據類型又指向另一塊堆內存空間,存儲有效的數據.

          3. 內存中的數組

          int[] arrayA = new int[3];

              如上,arrayA只是一個引用變量,和創建類時一樣,引用變量放在棧內存中.只有在new時,才會在堆內存中為對象分配內存空間.當將一個數組變量a,賦給數組變量b時,即將引用變量b也執行堆內存中a變量指向的對象實例,這樣兩個變量a和b都指向了同一個數組對象,而第二個數組則變成了垃圾,由系統垃圾回收機制在適當的時候回收這個對象所占用的內存.

              代碼清單: 數組的定義和初始化

           
          public class ArrayTest {
              
              public static void main(String[] args) {
                  
                  int[] a = {1,2,3};//靜態初始化
                  int[] b = new int[4];//動態初始化
                  
                  System.out.println("數組a的長度:"+a.length);
                  for (int i=0;i<a.length;i++) {
                      System.out.println("a["+i+"]="+a[i]);
                  }
                  
                  System.out.println("數組b的長度:"+b.length);
                  for (int i=0;i<b.length;i++) {
                      System.out.println("b["+i+"]="+b[i]);
                  }
                  
                  b = a;
                  System.out.println("數組b的長度:"+b.length);
                  
              }
           
              /*
              result:
              數組a的長度:3
              a[0]=1
              a[1]=2
              a[2]=3
              數組b的長度:4
              b[0]=0
              b[1]=0
              b[2]=0
              b[3]=0
              數組b的長度:3
              */
          }

           

          4. 多維數組

              java中的多維數組實質上還是一維數組.比如二維數組,數組元素也是引用,而數組元素中的引用指向一維

          數組.

              代碼清單: 多維數組

           
          import java.util.Arrays;
           // Arrays類中包含常用的方法,包括復制數組,排序,查找,對比,填充等功能
          public class ArrayTest2 {
           
              public static void main(String[] args) 
              {
                  int[][] a = new int[3][2];//定義一個二維數組a
                  
                  // 首先a是一個長度為3的一維數組
                  for (int i = 0; i < a.length ; i++ )
                  {
                      System.out.println(Arrays.toString(a[i]));//每個數組元素都是一個引用一維數組的引用變量
                  }
                  
                  a[0][0] = 1;
                  a[0][1] = 2;
                  //在這個一維數組中的元素又是一個一維數組
                  System.out.println("二維數組的元素是一維數組:");
                  for (int j = 0; j < 2; j++) {
                      System.out.println("a[0][" + j + "]=" + a[0][j]);
                  }
                  
                  System.out.println("重新賦值后的二維數組:");
                  for (int i = 0; i < a.length ; i++ )
                  {
                      System.out.println(Arrays.toString(a[i]));
                  }
           
                  // 二維數組的遍歷
                  System.out.println("二維數組的遍歷:");
                  for (int i=0;i<3;i++) {
                      for (int j=0;j<2;j++) {
                          System.out.println("a["+i+"]["+j+"]="+a[i][j]);
                      }
                  }
              }
              /*
              [0, 0]
              [0, 0]
              [0, 0]
              二維數組的元素是一維數組:
              a[0][0]=1
              a[0][1]=2
              重新賦值后的二維數組:
              [1, 2]
              [0, 0]
              [0, 0]
              二維數組的遍歷:
              a[0][0]=1
              a[0][1]=2
              a[1][0]=0
              a[1][1]=0
              a[2][0]=0
              a[2][1]=0
              */
              
          }
          posted on 2009-01-12 23:07 wangjc 閱讀(375) 評論(0)  編輯  收藏 所屬分類: 從頭看Java
          主站蜘蛛池模板: 新源县| 成安县| 锦州市| 辽中县| 高平市| 吉林市| 中宁县| 夏邑县| 博爱县| 黔西| 进贤县| 正安县| 时尚| 上饶县| 海丰县| 平山县| 西峡县| 正安县| 聂拉木县| 青浦区| 武鸣县| 蒙山县| 中牟县| 铁岭县| 鄂托克前旗| 金塔县| 新宁县| 宁波市| 永昌县| 宜川县| 台前县| 宝清县| 乌鲁木齐市| 常德市| 闽侯县| 翁源县| 鸡泽县| 邳州市| 武汉市| 都匀市| 凤山市|