Java數組的基本講解

來源:互聯網
上載者:User

標籤:

  由於Java數組涵蓋的內容比較多,這裡從個人的角度對主要的內容進行相關的講解。

  如有不足,歡迎批評指正~

  1)Java數組是動態還是靜態啊?

    Java語言是典型的靜態語言,由此推斷Java數組也是靜態。何為靜態,就是說Java數組在初始化的時候必須確定在記憶體中分配的空間的大小。

    具體實現方式就是在初始化數組的時候(注意不是聲明數組的時候,這兩個概念別搞混了)指定數組的長度,或者指定初始化數組的內容哦。

    同時需要明白陣列變數並不是數組本身,陣列變數是儲存在棧中的,對應的數組對象是儲存在堆中的。棧中的陣列變數指向堆中的數組對象。

    例如:

   

package com.yonyou.test;import java.util.HashSet;import java.util.Iterator;import java.util.Set;/** * 測試類別 * @author 小浩 * @建立日期 2015-3-2 */public class Test{  public static void main(String[] args) {  int[] array=new int[10];//初始化數組的時候指定類數組的長度  int[] array_new=new int[]{1,2,3};//初始化數組的時候指定了對應的相關元素                                                   //需要注意的是這裡不能再指定對應的長度了哦                                                   //否則的話會報錯的哦。 System.out.println("數組一的長度為:"+array.length); System.out.println("數組二的長度為:"+array_new.length);   }}

  2)Java數組的預設初始化值

       a.基礎資料型別 (Elementary Data Type)byte,short,int,long,預設的初始化值為0;

       b.基礎資料型別 (Elementary Data Type)float,double的預設初始值為0.0

       c.基礎資料型別 (Elementary Data Type)char的預設初始值為:\0000

       d.基本參考型別的預設初始值為null

package com.yonyou.test;import java.util.HashSet;import java.util.Iterator;import java.util.Set;/** * 測試類別 * @author 小浩 * @建立日期 2015-3-2 */public class Test{  public static void main(String[] args) {      short[] array_0=new short[10];  int[] array_1=new int[10];  long[] array_2=new long[10];  byte[] array_3=new byte[10];  char[] array_4=new char[10];  boolean[] array_5=new boolean[10];  float[] array_6=new float[10];  double[] array_7=new double[10];  Car[] array_8=new Car[10];  System.out.println("short:"+array_0[5]);  System.out.println("int:    "+array_1[5]);  System.out.println("long: "+array_2[5]);    System.out.println("byte: "+array_3[5]);    System.out.println("char的預設值是否為\\u0000:"+(array_4[5]==‘\u0000‘));//無法直接顯示字元的內容                                           //間接的顯示  System.out.println("boolean: "+array_5[5]);    System.out.println("float     : "+array_6[5]);    System.out.println("double: "+array_7[5]);    System.out.println("引用類變數初始化值為:: "+array_8[5]);      }    /**   * 建立一個測試對象   * @author 小浩   * @建立日期 2015-3-19   */  class Car{      }}

  3)Java數組一定要初始化嗎?

         不是的。對於具體的反例,請看下面的內容:

        

package com.yonyou.test;/** * 測試類別 * @author 小浩 * @建立日期 2015-3-2 */public class Test{  public static void main(String[] args) {       Car[] car1=new Car[10];       Car[] car2;       car2=car1;       System.out.println(car2.length);         }    /**   * 建立一個測試對象   * @author 小浩   * @建立日期 2015-3-19   */  class Car{      }}

  4)Java數組初始化的幾種方式?

         數組的初始化一般分為兩種:

        一種為靜態初始化:

        在建立數組的時候就指定了數組的長度,如下面的內容:

        int[] array_static=new int[]{1,2,3};

        第二種為動態初始化:

        在建立數組的時候僅僅指定數組的長度

        int[] array_dynamic=new int[10];

        具體應用執行個體如下:

       

package com.yonyou.test;/** * 測試類別 * @author 小浩 * @建立日期 2015-3-2 */public class Test{  public static void main(String[] args) {  //靜態初始化      int[] array_static=new int[]{1,2,3};      //動態初始化      int[] array_dynamic=new int[10];         }

  4)Java中的多維陣列是怎麼回事?

        說句到家的話,java中沒有多維陣列的概念。java中的多維陣列可以當成一維數組來處理。初始化多維陣列的時候可以轉換成對應的一維數組。

        只不過這時一維數組中儲存的不在是具體的元素值,而是對應的數組的引用地址。具體的也不多說了,請看下面的例子:

       

package com.yonyou.test;/** * 測試類別 * @author 小浩 * @建立日期 2015-3-2 */public class Test{  public static void main(String[] args) {          Object[] obj1=new Object[4];        obj1[2]=new Object[2];        Object[] obj2=(Object[]) obj1[2];        obj2[1]=new Object[3];        Object[] obj3=(Object[]) obj2[1];        obj3[2]=new int[5];        int[] obj4=(int[]) obj3[2];        obj4[3]=100;        System.out.println(obj4);        System.out.println(  ((int[])((Object[])((Object[])obj1[2])[1])[2]) );        System.out.println(obj4[3]);        System.out.println(((int[])((Object[])((Object[])obj1[2])[1])[2])[3]);  }}  

  

   好吧,就先到這裡吧。

Java數組的基本講解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.