未知數(shù)據(jù)

          從頭看Java

             ::  :: 聯(lián)系 :: 聚合  :: 管理
            28 Posts :: 0 Stories :: 10 Comments :: 0 Trackbacks

          搜索

          •  

          積分與排名

          • 積分 - 16910
          • 排名 - 1899

          最新評(píng)論

          閱讀排行榜

           

          1. 定義

              1. 同一個(gè)數(shù)組中只能存儲(chǔ)一種數(shù)據(jù)類(lèi)型的數(shù)據(jù)

              2. 存儲(chǔ)的數(shù)據(jù)類(lèi)型可以是基本數(shù)據(jù)類(lèi)型,也可以是引用數(shù)據(jù)類(lèi)型

              3. 數(shù)組也是一種類(lèi)型,是一種引用數(shù)據(jù)類(lèi)型.所以數(shù)組在定義的時(shí)候并未分配內(nèi)存.

          2. 初始化

              1. 靜態(tài)初始化

                  由程序員顯示指定每個(gè)數(shù)組元素的初始值,由系統(tǒng)決定需要的數(shù)組長(zhǎng)度

              2. 動(dòng)態(tài)初始化

                  由系統(tǒng)程序員指定數(shù)組長(zhǎng)度,由系統(tǒng)按照數(shù)據(jù)類(lèi)型指定數(shù)組元素初始值.

              數(shù)組的初始化過(guò)程,就是為數(shù)組的數(shù)組元素分配內(nèi)存空間的過(guò)程.靜態(tài)初始化和動(dòng)態(tài)初始化不能同時(shí)進(jìn)行,

          也就是不能即指定數(shù)組長(zhǎng)度,又為數(shù)組元素指定初始值.

              如果數(shù)組是引用類(lèi)型的,每個(gè)數(shù)組元素中的數(shù)據(jù)就是引用數(shù)據(jù)類(lèi)型,這時(shí)的引用數(shù)據(jù)類(lèi)型是保存在堆內(nèi)存中

          的,而每個(gè)引用數(shù)據(jù)類(lèi)型又指向另一塊堆內(nèi)存空間,存儲(chǔ)有效的數(shù)據(jù).

          3. 內(nèi)存中的數(shù)組

          int[] arrayA = new int[3];

              如上,arrayA只是一個(gè)引用變量,和創(chuàng)建類(lèi)時(shí)一樣,引用變量放在棧內(nèi)存中.只有在new時(shí),才會(huì)在堆內(nèi)存中為對(duì)象分配內(nèi)存空間.當(dāng)將一個(gè)數(shù)組變量a,賦給數(shù)組變量b時(shí),即將引用變量b也執(zhí)行堆內(nèi)存中a變量指向的對(duì)象實(shí)例,這樣兩個(gè)變量a和b都指向了同一個(gè)數(shù)組對(duì)象,而第二個(gè)數(shù)組則變成了垃圾,由系統(tǒng)垃圾回收機(jī)制在適當(dāng)?shù)臅r(shí)候回收這個(gè)對(duì)象所占用的內(nèi)存.

              代碼清單: 數(shù)組的定義和初始化

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

           

          4. 多維數(shù)組

              java中的多維數(shù)組實(shí)質(zhì)上還是一維數(shù)組.比如二維數(shù)組,數(shù)組元素也是引用,而數(shù)組元素中的引用指向一維

          數(shù)組.

              代碼清單: 多維數(shù)組

           
          import java.util.Arrays;
           // Arrays類(lèi)中包含常用的方法,包括復(fù)制數(shù)組,排序,查找,對(duì)比,填充等功能
          public class ArrayTest2 {
           
              public static void main(String[] args) 
              {
                  int[][] a = new int[3][2];//定義一個(gè)二維數(shù)組a
                  
                  // 首先a是一個(gè)長(zhǎng)度為3的一維數(shù)組
                  for (int i = 0; i < a.length ; i++ )
                  {
                      System.out.println(Arrays.toString(a[i]));//每個(gè)數(shù)組元素都是一個(gè)引用一維數(shù)組的引用變量
                  }
                  
                  a[0][0] = 1;
                  a[0][1] = 2;
                  //在這個(gè)一維數(shù)組中的元素又是一個(gè)一維數(shù)組
                  System.out.println("二維數(shù)組的元素是一維數(shù)組:");
                  for (int j = 0; j < 2; j++) {
                      System.out.println("a[0][" + j + "]=" + a[0][j]);
                  }
                  
                  System.out.println("重新賦值后的二維數(shù)組:");
                  for (int i = 0; i < a.length ; i++ )
                  {
                      System.out.println(Arrays.toString(a[i]));
                  }
           
                  // 二維數(shù)組的遍歷
                  System.out.println("二維數(shù)組的遍歷:");
                  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]
              二維數(shù)組的元素是一維數(shù)組:
              a[0][0]=1
              a[0][1]=2
              重新賦值后的二維數(shù)組:
              [1, 2]
              [0, 0]
              [0, 0]
              二維數(shù)組的遍歷:
              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 閱讀(374) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 從頭看Java
          主站蜘蛛池模板: 漳州市| 唐山市| 龙泉市| 威信县| 册亨县| 湖口县| 哈密市| 桂东县| 拉萨市| 樟树市| 道孚县| 镇坪县| 鹤岗市| 齐齐哈尔市| 洪泽县| 安乡县| 新竹县| 和田市| 和平区| 土默特右旗| 多伦县| 高邑县| 嘉黎县| 新龙县| 蓬溪县| 新泰市| 南昌县| 东丰县| 昆山市| 博乐市| 思茅市| 玉林市| 大厂| 凭祥市| 拜泉县| 普安县| 萍乡市| 长治县| 扶余县| 高青县| 黔西县|