數組詳解(一):數組的定義,特點,使用及數組在內存中的分析

數組的定義

​ 數組是一組相同數據類型的數據的集合,數組中的每一個數據被稱作元素。在數組中可以存放任意類型的元素,但是同一個數組裏存放的元素類型必須一致,每一個數組元素可以通過一個下標來訪問。

定義數組的格式:
    數組類型[] 數組名 = new 數組類型[數組容量];
	數組類型[] 數組名 = new 數組類型[]{數組元素};
	數組類型[] 數組名 = {數組元素};

數組名就是定義的變量名,要符合標識符的規範;數組容量表示該數組中可以容納的數組元素的個數。
數組中的每一個元素都有一個索引,也叫角標,要想訪問數組中的元素可以通過"數組名[角標]"的形式
需要注意的是,數組中最小的索引是0,最大的索引是"數組的長度-1"。爲了獲得數組的長度,提供
一個 length 屬性。通過"數組名.length"的方式,來獲取元素的個數,即數組的長度。

Java不同數據類型元素的默認值

數據類型 默認初始化值
byte,short,int,long 0
float,double 0.0
char 一個空字符,即’\u0000’
boolean false
引用數據類型 null

使用數組時,如果不想使用這些默認初始值,可以顯式的爲這些元素賦值,也可以對定義數組時指定初始值進行修改。

package com.wang.array;

public class ArrayDemo1 {
    public static void main(String[] args) {
        //數據類型[] 數組名 = new 數據類型[數組容量];
        int[] nums = new int[10]; //聲明一個數組

        //給數組元素賦值
        nums[0] = 1;
        nums[1] = 2;
        nums[2] = 3;
        nums[3] = 4;
        nums[4] = 5;
        nums[5] = 6;
        nums[6] = 7;
        nums[7] = 8;
        nums[8] = 9;
        nums[9] = 10;

        //計算數組中所有元素的和
        int sum = 0;

        for (int i = 0; i < nums.length; i++) {
            sum = sum + nums[i];
        }

        //輸出結果
        System.out.println("數組中元素的總和是:" + sum);//55
    }
}

數組的內存分析

​ 爲了便於理解,簡單的將內存分爲棧內存,堆內存等,基本數據類型的變量都存儲在棧內存中,棧的特點是存儲空間小,但是存取速度快,先進後出。引用數據類型所佔的空間比較大,存儲在堆內存中,堆內存的特點是空間大,存取的速度比較慢。

數組的內存分析

數組的特點

  • 數組的長度是確定的。數組一旦被創建,它的大小就是不可改變的。
  • 數組中的元素必須是相同類型的,不允許出現混合類型。
  • 數組中的元素可以是任何數據類型,包括基本數據類型和引用數據類型。
  • 數組變量屬於引用數據類型,數組也可以看成是對象,數組中的每一個元素相當於該對象的成員變量。

數組邊界:

​ 數組下標的合法區間:[0 ~ length-1],如果數組下標越界就會報錯。

ArrayIndexOutOfBoundsException
    數組下標越界異常

數組的使用

  • 操作數組時,需要依次訪問數組中的每一個元素,這種操作稱爲數組的遍歷
package com.wang.array;

public class ArrayDemo2 {
    public static void main(String[] args) {
        //創建一個數組
        int[] arrays = {1,2,3,4,5};

        //遍歷數組元素
        for (int i = 0; i < arrays.length; i++) {
            System.out.println(arrays[i]);
        }

        System.out.println("=============");

        //計算數組中元素的和
        int sum = 0;
        for (int i = 0; i < arrays.length; i++) {
            sum += arrays[i];
        }
        System.out.println("數組中元素的和爲:" + sum);
    }
}
  • 找出最大值
package com.wang.array;

public class ArrayDemo3 {
    public static void main(String[] args) {
        //創建一個數組
        int[] arrays = {1,2,3,4,5};
        //找出數組中的最大值
        int max = arrays[0];//首先假設數組下標爲0的元素最大,再去循環比較
        for (int i = 1; i < arrays.length; i++) {
            if (arrays[i] > max) {
                max = arrays[i];
            }
        }
        System.out.println("數組中的最大值是:" + max);
    }
}
  • 數組中的增強for循環
增強for循環的格式:
    for(聲明語句 : 表達式)
    {
        //代碼
    }
增強for循環是Java1.5之後引入的
聲明語句:聲明新的局部變量,該變量的類型必須和數組元素的類型匹配,作用域限定在循環語句塊,
    其值與此時數組元素的值相等。
表達式:表達式是要訪問的數組名,或者是返回值爲數組的方法。
package com.wang.array;

public class ArrayDemo4 {
    public static void main(String[] args) {
        int[] arrays = {10,20,30,40,50};

        //增強for循環,JDK1.5,適用於不對數組下標操作,僅僅是遍歷數組
        //這種方式是取不到數組下標的
        for (int array : arrays) {
            System.out.println(array);
        }
    }
}
  • 數組作爲方法
package com.wang.array;

public class ArrayDemo5 {
    public static void main(String[] args) {
        int[] arrays = {10,20,30,40,50};
        printArray(arrays);
    }

    //打印數組元素
    public static void printArray(int[] array) {
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章