1. 程式人生 > >Java的陣列定義與方法過載——有C++基礎的Java入門(三)

Java的陣列定義與方法過載——有C++基礎的Java入門(三)

目錄

一、 陣列的定義

1、定義

2、 原理

3、 賦值方式

二、Java的方法過載

1、 概念

(1) 過載

(2) 目的

2、例子

(1) 比較兩個數值的大小

(2) 執行方式及結果


一、 陣列的定義

1、定義

資料型別 [ ]  陣列名 = new 資料型別 [整數];

整數就是陣列的長度。

定義方式和C#是一樣的,如 int [] arr = new int[5];

2、 原理

假設在程式中定義的陣列為 int [] arr = new int[5]; 從JVM(JVM在“入門一”裡面有詳細解釋,這裡不再贅述)的方向分析。先上個圖,在做詳細的解釋。

在程式執行的時候,電腦的記憶體裡會分配一個JVM的空間。在JVM裡面又分為兩大區域:堆和棧(類似於我們電腦裡面的固態硬碟和機械硬碟)。

棧:空間小,主要儲存地址和基本資料型別的變數,存取速度快。

堆:空間大,主要儲存引用型別的變數,存取速度慢。

int [] arr = new int[5];在堆中會開闢一片空間來存放陣列,會給這片空間分配一個假設為0x666的地址(這個地址只有計算機知道)。因為陣列沒有賦值,在Java中這五個值都預設為0。在堆中存放的東西由誰來引用呢?一定是由棧來引用的,所以在棧中一定有一片空間來儲存陣列的地址,通過棧中的地址找到堆中陣列的值。

3、 賦值方式

賦值方式和c++也是一樣的,但獲取陣列的長度上不同。C++需要自己定義一個函式來求陣列的長度,Java中只需要“陣列名.length(如arr.length)”和JS是一樣的。

二、Java的方法過載

Java的方法定義、方法過載和C++都是差不多的。

1、 概念

(1) 過載

過載是在一個類中有兩個或者兩個以上同名的方法,但是引數不同(兩個方法的引數的個數不同,引數的型別不同),與返回值無關。

(2) 目的

提高程式碼的可讀性和節省命名的詞。

2、例子

(1) 比較兩個數值的大小

public class demo{
    /**
     *比較兩個數的大小
     */
    public static int compareNum(int a,int b){
        return a>b?a:b;
        //三元運算子的比較:如果比較結果為真,則返回a,為假則返回b
    }

    /**
     * 函式過載
     *比較三個數的大小
     */
    public static int compareNum(int a,int b,int c){
        return comparenum(a,b)>c?comparenum(a,b):c;
    }

    public static void main(String[] args){
        int result1=comparenum(100,200);
        int result2=comparenum(555,66,88);
        System.out.println("result1="+result1);
        System.out.println("result2="+result2);
    }
}

(2) 執行方式及結果

下一章節:Java的this、public、static、protected關鍵字——有C++基礎的Java入門(四)