java數組小結


---恢復內容開始---

1、概述

  由於java是典型的靜態語言,因而java中的數組也是靜態的;java數組變量是引用類型的變量,(ps:java中的引用有些許像c++和c中的指針)當我們使用java數組的時候,主要有2部分操作;分別是定義引用變量(相當於c++/c中的定義一個指針(指NULL))和實例化數組對象。

  在java內存分配機制中,定義局部變量和引用變量是在相應的方法棧內存中申請一塊空間;而引用變量所指向的對象(類對象、數組對象)是在堆內存中申請了內存;棧內存容易訪問(直接訪問),堆內存不易訪問(需要借助引用變量來訪問堆內存)。

2、數組初始化

  java數組的初始化分為2種;分別是靜態初始化和動態初始化。

  靜態初始化:

  在定義數組的時候同時對數組對象進行初始化操作;但是不可以對數組長度進行賦值

  例:int []a=new int[]{1,2,3,4};

    String []b=new String[]{"Kylin","shanshan"};

 

  動態初始化:

  定義數組的時候只對數組長度進行了賦值,並沒有對具體的數組對象進行初始化(由系統默認初始化)

  例如:int []c=new int[4];

     String []d=new String[3];

  對於c數組的實例化對象的值,分別是c[0]==0  c[1]==0  c[2]==0  c[3]==0 

  d數組對象的值分別是 null  null  null;

  為什么會這樣呢? 這是由於java有一套默認的初始化機制,下面介紹一下java為數組元素分配的初始值:

  整型類型(byte,short,int,double)默認初始值是0

  浮點類型(double,float)默認初始值0.0

  布爾類型(boolean)默認初始值false

  引用類型(數組、類、接口、String)默認初始值為null

  字符類型(char)默認初始值'\u0000'

3、二維數組(多維)

  初始化多為數組的時候可以先只初始化最左邊維度,java允許講多維數組當成是一維數組來處理,廢話不多說,上例子。

     int [][]a=new int[3][];
        //java中二維數組的數組名代表一維數組的首地址(和c++/c一樣)
        System.out.println(a.length);
        for(int i=0;i<a.length;i++)
        {
            //讓一維數組的元素再指向新的一維數組;就形成了二維(多維)數組;這里可以指向很多長度不同的新數組
            a[i]=new int[4];  
        }
        for(int i=0;i<4;i++)
        {
            System.out.print(a[0][i]+" ");
        }

  運行結果如下:

  

   

    

---恢復內容結束---


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM