Java函式和陣列 | Java隨筆記

語言: CN / TW / HK

theme: scrolls-light

「這是我參與11月更文挑戰的第14天,活動詳情檢視:2021最後一次更文挑戰


相關文章

Java隨筆記:Java隨筆記


  • 剛下班到家。。。無能為力。。。水,就硬水~ ```java 1、函式 1)函式的定義:就是定義在類中的具有特定功能的一段獨立小程式。函式也被稱為方法。 格式: 修飾符 返回值型別 函式名 (引數型別 形式引數1 , 引數型別 形式引數2 , .... ){ 執行語句; return 返回值; }

    返回值型別:函式執行後的結果的資料型別。
    引數型別:是形式引數的資料型別。
    形式引數:是一個變數,用於儲存呼叫函式時傳遞給函式的實際引數。
    實際引數:傳遞給形式引數的具體數值。
    return:用於結束函式。
    返回值:該函式運算後的結果,該結果會返回給呼叫者。
    

    注意:返回值是void時,return可以省略。

    範例: //對兩個數值進行相加,並且返回 和 的值 public static int plus(int a , int b){ return a+b; }

    2)函式的特點:
        定義函式可以將功能程式碼封裝。
        便於對該功能的複用。
        函式只有被呼叫才被執行。
        函式的出現提高了程式碼的複用性。
    注意:函式中只能呼叫函式,不可以在函式內部定義函式。
        定義函式時,函式的結果應該返回呼叫者,交由呼叫者進行處理。
    
    3)函式的應用:
        棧:先進後出
    
    4)函式的過載:overload
        概念:
            在同一個類中,允許存在一個以上的同名函式,只要他們的引數個數或者引數型別不同即可。
        特點:
            與返回值型別無關,只看引數列表。
        好處:
            方便於閱讀,優化了程式設計。
        示例:
            //返回兩個整數的和
            public static int add(int x,int y){return x+y;}
    
            //返回三個整數的和——引數個數不同
            public static int add(int x,int y,int z){return x+y+z;}
    
            //返回兩個小數的和——引數型別不同
            public static double add(double x,double y){return x+y;}
        範例:列印自定義乘法口訣表
            public static void printCFB(int num){
                for(int x = 1; x <= num; x++){
                    for(int y = 1; y <= x; y++){
                        System.out.print(y+"*"+x+"="+y*x+"\t");
                    }
                    System.out.println();
                }
            }
    
            public static void printCFB(){
                for(int x = 1; x <= 9; x++){
                    for(int y = 1; y <= x; y++){
                        System.out.print(y+"*"+x+"="+y*x+"\t");
                    }
                    System.out.println();
                }
            }
    
            解析:
                傳幾過來就列印到幾的乘法口訣表,不傳值列印 9*9 乘法口訣表
    

    2、陣列 1)定義: 概念:同一資料型別資料的集合。其實陣列就是一個容器。 好處:可以自動給陣列中的元素從0開始編號,方便操作這些元素。 格式1: 元素型別[] 陣列名 = new 元素型別[元素的個數或者說陣列長度]; 示例:int[] arr = new int[5]; 格式2: 元素型別[] 陣列名 = new 元素型別[]{元素,元素,元素,.......}; 示例:int[] arr = new int[]{1,2,3,4}; int[] arr = {1,2,3,4};

    2)記憶體分配及特點:
        記憶體劃分:
            暫存器
            本地方法區
            方法區
            棧記憶體:特點是處理速度快
                儲存都是區域性變數(方法內的變數,只在當前方法內有用,如:形式引數,方法內變數,for迴圈內的引數)。
                一旦變數離開自己的作用域,其記憶體就會被自動釋放。
                所有變數都在棧裡面。除了靜態變數。
                區域性程式碼塊:
                    {
                        int a = 3;//限定區域性變數的生命週期,執行完立馬釋放
                    }
            堆記憶體:
                儲存的是物件。凡是 new 建立的都存在堆中。
                特點是:
                    每一個實體都有一個首地址值。
                    堆記憶體中的每一個變數都有預設的初始化值,根據型別的不同而不同。整數是0、小數0.0或者0.0f、oolean false、char '\u0000'。
                    垃圾回收機制:引用資料型別(相當於c++中的指標)儲存在此。當 arr = null; 引用消失。堆中的物件變成’垃圾‘,’垃圾回收機制‘會進行回收。c++是手動清理,使用解構函式進行回收。
    
    3)操作常見問題:
        陣列越界:
            ArrayIndexOutOfBoundsException
            當訪問到陣列中不存在的角標時,就會發生該異常。
        空指標異常:
            NullPointerException
            當引用型變數沒有任何實體指向時,還在用其操作實體,就會發生該異常。
    
    4)常見操作:
        核心思想:就是對角標的操作
        遍歷:迴圈遍歷
        長度:arr.length
        存: arr[0] = 1;
        取: arr[i];
    
        最值操作:
            最大值或最小值
            int[] arr = {1,2,3,6,5,4};
            int max = 0;//儲存最大值
            for(int i = 0; i <= arr.length-1; i++){
                if(arr[i]>max){
                max = arr[i]; 
                }
            }
            System.out.println("該陣列最大值為:"+max);
    
        排序和查詢:單獨寫一篇詳細解析!
            選擇排序:
    
            氣泡排序:
    
    5)陣列的應用:
        如果資料出現了對應關係,而且對應關係的一方是有序的數字編號,並作為角標使用,這時候要想到使用陣列。
    
    6)陣列中的陣列:
        二維陣列:
            格式1:int[][] arr = new int[3][2];
                定義了名稱為arr的二維陣列。
                二維陣列中有3個一維陣列。
                每一個一維陣列中有2個元素。
                給第一個一維陣列的元素角標寫法為:arr[0][1] = 78;
            格式2:int[][] arr = new int[3][];
                二維陣列中三個一維陣列。
                每一個一維陣列的初始化值為null。
                可以對這三個一維陣列分別進行初始化。
                    arr[0] = new int[3];
                    arr[1] = new int[1];
                    arr[2] = new int[2];
            格式3:int[][] arr = {{1,2},{2,3,7},{6,7}};
        遍歷:
            for(int i = 0; i < arr.length; i++){
                for(int j = 0; j < arr[i].length; j++){
                    System.out.print("arr" + arr[i][]j);
                }
            }
    

```


路漫漫其修遠兮,吾必將上下求索~

如果你認為i博主寫的不錯!寫作不易,請點贊、關注、評論給博主一個鼓勵吧~hahah