Java基礎(chǔ)入門第四天

Java基礎(chǔ)語法

數(shù)組操作的2個(gè)異常

數(shù)組的索引超過范圍異常 (索引越界)

程序中訪問了不存在的索引, 每個(gè)數(shù)組的索引范圍從0開始,最大的索引=數(shù)組的長度-1

public static void main(String[] args) {
 //定義存儲(chǔ)int類型的數(shù)組
 int[] arr = {1,2,3,4,5};
 //數(shù)組中存儲(chǔ)5個(gè)元素,長度是5個(gè)
 System.out.println(arr.length);
 //索引0-4
 //訪問不存在的索引
 System.out.println(arr[5]);
 }
數(shù)組索引越界異常.jpg

數(shù)組的空指針異常

當(dāng)數(shù)組的引用類型變量arr不保存數(shù)組的地址了,再操作數(shù)組,就出現(xiàn)空指針異常

public static void main(String[] args) {
 int[] arr = {1,2,3,4,5};
 System.out.println(arr);

 arr = null; //數(shù)組 = 空 , 不再保存數(shù)組在內(nèi)存中的地址了

 //不能操作數(shù)組的任何內(nèi)容
 System.out.println(arr.length);
 }
空指針異常.jpg
空指針異常-2.jpg

數(shù)組的內(nèi)存問題

兩個(gè)數(shù)組在內(nèi)存中的表現(xiàn)

每個(gè)數(shù)組,都會(huì)在內(nèi)存中,開辟空間存儲(chǔ)數(shù)據(jù), 內(nèi)存之間是相互獨(dú)立的,沒有關(guān)聯(lián)

一個(gè)數(shù)組就會(huì)占用一個(gè)內(nèi)存空間

public static void main(String[] args) {
 //定義2個(gè)數(shù)組
 int[] arr1 = new int[]{1,2,3,4,5};
 int[] arr2 = new int[]{6,7,8,9,0};
 //輸出數(shù)組,看到不同的地址
 System.out.println(arr1);
 System.out.println(arr2);

 System.out.println(arr1[0]);
 System.out.println(arr2[0]);
 }
兩個(gè)數(shù)組內(nèi)存圖.jpg

多個(gè)變量指向同一個(gè)內(nèi)存空間

public static void main(String[] args) {
 //定義數(shù)組,存儲(chǔ)一些元素
 int[] arr1 = {1,2,3,4};

 System.out.println(arr1);

 //將數(shù)組arr1的內(nèi)存地址,賦值到另一個(gè)變量
 int[] arr2 = arr1;
 System.out.println(arr2);

 System.out.println(arr1[0]);

 arr2[0] = 100;

 System.out.println(arr1[0]);
 }

數(shù)組的常見操作

數(shù)組的遍歷 (迭代)

所謂數(shù)組的遍歷,就是將數(shù)組中的每一個(gè)元素分別取出的過程.

數(shù)組的遍歷,是數(shù)組其他操作的一個(gè)最基礎(chǔ)的案例

循環(huán)遍歷取出數(shù)組的元素,循環(huán)的次數(shù)由長度決定

public static void main(String[] args) {
 int[] arr = {2,4,6,8,10};
 //循環(huán)遍歷數(shù)組,取出數(shù)組中的每個(gè)元素,依次取出
 //數(shù)組的長度是5個(gè),索引0-4  for(知道次數(shù))   while(不知道次數(shù))
 for(int i = 0 ; i < arr.length ; i++) {
 //利用循環(huán)中的變量i, 作為索引使用,取出數(shù)組的元素
 System.out.println(arr[i]);
 }
 }

數(shù)組最值獲取

取出數(shù)組中的最大值,或者是最小值

實(shí)現(xiàn)核心思想 : 遍歷中進(jìn)行比較

/*
 * 獲取數(shù)組的最大值
 * 實(shí)現(xiàn)步驟 :
 *   1.定義變量,保存數(shù)組0索引上的元素
 *   2.遍歷數(shù)組,取出數(shù)組的每個(gè)元素
 *   3.數(shù)組的元素和變量,進(jìn)行比較
 *      如果數(shù)組的元素,大于變量
 *      數(shù)組的元素,存儲(chǔ)在變量中
 *   4.數(shù)組全部遍歷完成,變量保存的就是最大值
 */
public class ArrayDemo06 {
 public static void main(String[] args) {
 //創(chuàng)建數(shù)組
 int[] arr = {1,5,10,2,6,9,0,7};
 //定義變量,保存數(shù)組0索引上的元素
 int max = arr[0];
 //遍歷數(shù)組,取出數(shù)組的每個(gè)元素
 for(int i = 1 ; i < arr.length ; i++) {
 //數(shù)組的元素,和變量max比較
 if(arr[i] > max) {
 //賦值變量
 max = arr[i];
 }
 }
 //數(shù)組全部遍歷完成,變量保存的就是最大值
 System.out.println("最大值是::"+max);
 }
}
獲取數(shù)組的最值.jpg

數(shù)組的倒序遍歷

public static void main(String[] args) {
 int[] arr = {1,3,5,7,9};
 //從數(shù)組的最大索引開始遍歷
 for(int i = arr.length-1 ; i >= 0 ; i--) {
 System.out.println(arr[i]);
 }
 }

數(shù)組拼接為字符串

任意數(shù)組 : int[] arr = {1,2,3,4,5,6,7}, 遍歷數(shù)組,取出元素,元素拼接為一個(gè)字符串

輸出的格式 [1,2,3,4,5,6,7]

/*
 *   輸出的格式 [1,2,3,4,5,6,7]
 *   數(shù)組遍歷,拼接成上面的格式
 *   解決最后一個(gè)逗號(hào)問題 :
 *     判斷循環(huán)變量 i , 如果i的值,到達(dá)了數(shù)組的最大索引
 *     字符串拼接] ,而不是逗號(hào)
 * 
 */
public class ArrayDemo08 {
 public static void main(String[] args) {
 //創(chuàng)建數(shù)組
 int[] arr = {1,2,3,4,5,6,7};
 //遍歷,取出元素,字符串的拼接
 String s = "[";
 for(int i = 0 ; i < arr.length ;i++) {
 //判斷i是不是最大索引,如果是拼接]
 if(i == arr.length - 1) {
 s = s + arr[i]+"]";
 }else {
 s = s + arr[i]+",";
 }
 }
 System.out.println(s);
 }
}

數(shù)組元素的查找

已知數(shù)組 : 在數(shù)組中查找一個(gè)元素是否存在

元素存在于數(shù)組中 : 返回元素所在的索引

元素不存在數(shù)組中 : 返回負(fù)數(shù)

實(shí)現(xiàn)功能的核心思想 :

/*
 * 數(shù)組元素基本查找
 * 已知數(shù)組 : 在數(shù)組中查找一個(gè)元素是否存在
 元素存在于數(shù)組中 : 返回元素所在的索引 
 元素不存在數(shù)組中 : 返回負(fù)數(shù)
 實(shí)現(xiàn)功能的核心思想 : 遍歷,進(jìn)行比較 

 實(shí)現(xiàn)思想 :
 1\. 定義數(shù)組
 2\. 定義要查找的元素
 3\. 定義變量,保存查找后的結(jié)果 (數(shù)組的索引,或者是負(fù)數(shù))
 4: 遍歷數(shù)組,取出每個(gè)元素,和要查找的元素對比
 一旦找到,就不會(huì)在進(jìn)行比較了
 */
public class ArrayDemo09 {
 public static void main(String[] args) {
 //1\. 定義數(shù)組
 int[] arr = {1,5,6,7,2,3,8};
 //2\. 定義要查找的元素
 int key = 1;
 //3\. 定義變量,保存查找后的結(jié)果 (數(shù)組的索引,或者是負(fù)數(shù))
 int index = -1;
 //4: 遍歷數(shù)組,取出每個(gè)元素,和要查找的元素對比
 for(int i = 0 ; i < arr.length ; i++) {
 //查找的元素 和 數(shù)組的元素相等,找到了
 if(key == arr[i]) {
 //數(shù)組的索引,賦值到變量index
 index = i;
 //不需要再計(jì)算了吧,結(jié)束循環(huán)
 break;
 }
 }
 if(index >= 0) {
 System.out.println("元素找到了,在"+index+"這個(gè)索引");
 }else{
 System.out.println("抱歉,元素未找到");
 }
 }
}

數(shù)組翻轉(zhuǎn)

所謂數(shù)組翻轉(zhuǎn),就是數(shù)組中元素的位置發(fā)生了轉(zhuǎn)變 不等于倒序遍歷

原始數(shù)組 : {1,2,3,4,5}

翻轉(zhuǎn)數(shù)據(jù) : {5,4,3,2,1}

數(shù)組翻轉(zhuǎn).jpg
/*
 *  數(shù)組的翻轉(zhuǎn)
 *
 *  數(shù)組最遠(yuǎn)端的元素?fù)Q位
 *
 *  實(shí)現(xiàn)思想 : 
 *    1\. 定義2個(gè)變量
 *      一個(gè)變量,保存數(shù)組的最小索引
 *      一個(gè)變量,保存數(shù)組的最大索引
 *
 *    2: 當(dāng)最小索引,超過最大的索引,程序結(jié)束
 *
 *    3: 利用循環(huán)實(shí)現(xiàn)
 *
 *    4: 第三方變量的位置交換
 */ 
public class ArrayDemo11 {
 public static void main(String[] args) {
 int[] arr = {1,2,3,4,5,0};
 //一個(gè)變量,保存數(shù)組的最小索引
 //一個(gè)變量,保存數(shù)組的最大索引
 int min = 0;
 int max = arr.length - 1;
 for(; min <= max  ;) {
 //第三方變量交換位置
 int temp = arr[max]; //臨時(shí)變量,保存數(shù)組的最大索引
 //最小索引的元素,賦值到最大索引
 arr[max] = arr[min];
 //臨時(shí)變量的值,賦值到小索引上
 arr[min] = temp;

 //位置交換完畢,修改索引
 min++;
 max--;
 }

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

以上程序小的優(yōu)化

public static void main(String[] args) {
 int[] arr = {1,2,3,4,5,0};
 //一個(gè)變量,保存數(shù)組的最小索引
 //一個(gè)變量,保存數(shù)組的最大索引
 /*  int min = 0;
 int max = arr.length - 1;*/
 for(int min = 0 , max = arr.length - 1; min <= max  ;min++ ,max--) {
 //第三方變量交換位置
 int temp = arr[max]; //臨時(shí)變量,保存數(shù)組的最大索引
 //最小索引的元素,賦值到最大索引
 arr[max] = arr[min];
 //臨時(shí)變量的值,賦值到小索引上
 arr[min] = temp;
 }

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

二維數(shù)組

  • 一維數(shù)組 : 一個(gè)數(shù)組,存儲(chǔ)的是需要的數(shù)據(jù) int[] arr = {123}

  • 二維數(shù)組 : 一個(gè)數(shù)組,存儲(chǔ)的元素,是另一個(gè)數(shù)組. 理解為數(shù)組中的數(shù)組

    • 定義方式 :
    數(shù)據(jù)類型[][] array = new 數(shù)據(jù)類型[3][2]; 
        格式解析 : 定義了一個(gè)二維數(shù)組
         [3] : 二維數(shù)組的長度, 這個(gè)二維數(shù)組里面存儲(chǔ)了3個(gè)一維數(shù)組
         [2] : 每個(gè)一維數(shù)組的長度是2
   *   二維數(shù)組中,存儲(chǔ)的是一維數(shù)組的內(nèi)存地址
        public static void main(String[] args) {
         /*
         * 二維數(shù)組的長度是3,存儲(chǔ)3個(gè)一維數(shù)組
         * 每個(gè)一維數(shù)組,可以存儲(chǔ)2個(gè)元素
         */
         int[][] array = new int[3][2];
         System.out.println(array);//  [[I@15db9742
        ?
         //思考?
         System.out.println(array[0]); // [I@6d06d69c
        }
二維數(shù)組的內(nèi)存圖.jpg
*   定義方式:
        數(shù)據(jù)類型[][] array = new 數(shù)據(jù)類型[][]{}
        創(chuàng)建數(shù)組直接賦值元素
        public static void main(String[] args) {
            int[][] array = new int[][] { {1,2},{3,4,5,6},{7,8,9}  };
            System.out.println(array);
            //思考, 輸出5
            System.out.println(array[1][2]);

            //數(shù)組的越界異常
            System.out.println(array[2][2]);
        }
*   定義方式:
        數(shù)據(jù)類型[][] array = {};
public static void main(String[] args) {
            int[][] array = { {1,2,3},{4,5},{6,7,8,9,0} };
            System.out.println(array);
        }

遍歷

二維數(shù)組的遍歷 : 和一維數(shù)組遍歷幾乎是一樣的

利用嵌套循環(huán),雙for, 外循環(huán),遍歷二維數(shù)組,內(nèi)循環(huán),遍歷一維數(shù)組

public static void main(String[] args) {
 int[][] array = { {1,2,3},{4,5},{6,7,8,9,0} };
 //外循環(huán),遍歷二維數(shù)組,取出里面的3個(gè)一維數(shù)組
 for(int i = 0 ; i < array.length; i++) {
 //System.out.println(array[i]);
 //內(nèi)循環(huán),遍歷每個(gè)一維數(shù)組
 for(int j = 0; j <array[i].length;j++ ) {
 System.out.print(array[i][j]);
 }
 System.out.println();
 }
}

方法

方法概念

方法(Method)稱為函數(shù)(Function)

方法 : 在程序中是一個(gè)可以完成某個(gè)功能的獨(dú)立代碼片段

  • 某個(gè)功能 : 只要可以實(shí)現(xiàn)的都是功能 (求和)

  • 獨(dú)立代碼 : 方法是在一個(gè){} 實(shí)現(xiàn)的, 不同的方法之間是沒有聯(lián)系的

方法好處 : 可以將重復(fù)的代碼抽取出來,方便我們反復(fù)應(yīng)用.

方法定義

  • 定義格式
修飾符 返回值類型 方法名(參數(shù)列表){
  方法體,主體
  return ;
}
*   修飾符 : 目前我們很多點(diǎn)沒有講解,現(xiàn)在就是固定用法 `public static`

*   返回值類型 : 本質(zhì)上是數(shù)據(jù)類型,方法是實(shí)現(xiàn)功能的代碼,功能實(shí)現(xiàn)完畢后應(yīng)該是有結(jié)果的,結(jié)果的數(shù)據(jù)類型

*   方法名 : 標(biāo)識(shí)符,自定義, 見名知意

*   參數(shù)列表 : 方法要實(shí)現(xiàn)的功能中,是否會(huì)有未知的數(shù)據(jù),就是參數(shù)列表

*   方法體 : 寫完成功能的代碼

方法定義的練習(xí)

  • 要求 : 使用方法技術(shù),實(shí)現(xiàn)兩個(gè)整數(shù)的求和
     /*
     * 我們自己定義方法,實(shí)現(xiàn)需求   實(shí)現(xiàn)兩個(gè)整數(shù)的求和
     * 2個(gè)分析 : 
     *   功能計(jì)算后的結(jié)果是什么,還是整數(shù) 返回值
     *   功能計(jì)算中是否存在未知的數(shù)據(jù), 兩個(gè)整數(shù)就是未知的
     *     寫在方法的參數(shù)列表,  定義2個(gè)整數(shù)類型變量
     */
     public static int sum(int a, int b) {
     // 方法體 : 寫完成功能的代碼
     return a + b;
     }

方法的調(diào)用

什么是方法的調(diào)用 : 就是讓我們寫好的方法執(zhí)行起來

如何調(diào)用方法 : call name 叫名字

傳遞方法的參數(shù), 接收方法的返回值結(jié)果

public static void main(String[] args) {
 //調(diào)用寫的方法 sum, 明確方法中的2個(gè)未知數(shù)
 int i = sum(5,6); // 11
 System.out.println(i);
 }
 /*
 * 我們自己定義方法,實(shí)現(xiàn)需求   實(shí)現(xiàn)兩個(gè)整數(shù)的求和
 * 2個(gè)分析 : 
 *   功能計(jì)算后的結(jié)果是什么,還是整數(shù) 返回值
 *   功能計(jì)算中是否存在未知的數(shù)據(jù), 兩個(gè)整數(shù)就是未知的
 *     寫在方法的參數(shù)列表,  定義2個(gè)整數(shù)類型變量
 */
 public static int sum(int a, int b) {
 // 方法體 : 寫完成功能的代碼
 return a + b;
 }
方法的調(diào)用過程.jpg

方法調(diào)用的內(nèi)存圖

方法的運(yùn)行,是在方法棧運(yùn)行.

方法的壓棧和方法的彈棧,方法進(jìn)入內(nèi)存(棧)到達(dá)底部, 棧內(nèi)存特點(diǎn)是先進(jìn)去的后出來.

方法執(zhí)行的內(nèi)存圖.jpg

方法定義的注意事項(xiàng) (匹配)

  • 方法不能定義在另一個(gè)方法中,寫在類中

  • 方法的定義沒有先后順序的

  • 方法定義的返回值類型,必須和return后面的類型一致

  • 調(diào)用方法傳遞參數(shù)也要一致

  • 如果方法定義上,返回值是void, 你卻返回了值

方法定義的練習(xí)

  • 定義方法 : 實(shí)現(xiàn)任意整數(shù)的乘法表
   public static void main(String[] args) {
     //調(diào)用打印乘法表的方法
     printChengFaBiao(7);
     }
     /*
     * 定義方法 : 實(shí)現(xiàn)任意整數(shù)的乘法表
     * 分析:
     *  返回值: 功能實(shí)現(xiàn)后,結(jié)果的數(shù)據(jù)類型, 沒有返回結(jié)果  void
     *  方法參數(shù): 實(shí)現(xiàn)功能的未知數(shù), 任意整數(shù)
     *
     *  方法的返回值沒有,void 方法里面可以不寫 return
     */
     public static void printChengFaBiao(int num) {
     //實(shí)現(xiàn)乘法表的功能
     for(int i = 1 ; i <= num ; i++) {
     for(int j = 1; j <= i ; j++) {
     System.out.print(j+"*"+i+"="+j*i+"\t");
     }
     System.out.println();
     }
     }
  • 定義方法 : 實(shí)現(xiàn)任意數(shù)字的高斯算法 1+2+3...+100
public static void main(String[] args) {
 //調(diào)用打印乘法表的方法
 //printChengFaBiao(7);

 //調(diào)用高斯算法的方法
 int sum = getSum(200);
 System.out.println(sum);
 }
 /*
 * 定義方法 : 實(shí)現(xiàn)任意數(shù)字的高斯算法 1+2+3...+100
 * 分析:
 *  返回值: 功能實(shí)現(xiàn)后,結(jié)果的數(shù)據(jù)類型, 結(jié)果是求和的數(shù), 整數(shù)int
 *  方法參數(shù): 實(shí)現(xiàn)功能的未知數(shù), 任意整數(shù)
 */
 public static int getSum(int num) {
 //定義變量,保存求和的結(jié)果
 int sum = 0;
 for(int i = 1 ; i <= num ; i++) {
 sum = sum + i;
 }
 //計(jì)算的結(jié)果,返回
 return sum;
 }
 /*
 * 定義方法 : 實(shí)現(xiàn)任意整數(shù)的乘法表
 * 分析:
 *  返回值: 功能實(shí)現(xiàn)后,結(jié)果的數(shù)據(jù)類型, 沒有返回結(jié)果  void
 *  方法參數(shù): 實(shí)現(xiàn)功能的未知數(shù), 任意整數(shù)
 *
 *  方法的返回值沒有,void 方法里面可以不寫 return
 */
 public static void printChengFaBiao(int num) {
 //實(shí)現(xiàn)乘法表的功能
 for(int i = 1 ; i <= num ; i++) {
 for(int j = 1; j <= i ; j++) {
 System.out.print(j+"*"+i+"="+j*i+"\t");
 }
 System.out.println();
 }
 }

方法調(diào)用上的總結(jié) (調(diào)用方式)

  1. 賦值調(diào)用

    • 接收方法的返回值結(jié)果
  2. 輸出語句調(diào)用

    • 直接將方法的調(diào)用,寫在輸出語句中
  3. 直接調(diào)用,不接收任何結(jié)果

  4. 如果方法返回值類型是 void , 不能接收返回值

public static void main(String[] args) {
 //1: 賦值調(diào)用,方法必須有返回值
 int i = sum(1,2);
 System.out.println(i);

 //2: 輸出語句調(diào)用,方法直接放在輸出語句
 System.out.println( sum(7,8) );

 //3: 直接調(diào)用,不接收任何結(jié)果
 sum(1,5);

 Scanner  sc = new Scanner(System.in);
 System.out.println( sc.nextInt() );
 //System.out.println( print()  );
 }
 public static void print() {
 System.out.println("這是一個(gè)void方法");
 }

 public static int sum(int a, int b) {
 return a + b;
 }

方法的重載

方法的重載(overload) : 在同一個(gè)類中,允許方法名字是相同的,只要方法的參數(shù)列表不一致,這些方法就是重載現(xiàn)象.

方法的重載 : 和修飾符,返回值無關(guān)

參數(shù)列表不一致 :

  • 包含參數(shù)的個(gè)數(shù)不同

  • 參數(shù)的數(shù)據(jù)類型不同

  • 參數(shù)的順序的不同

  • 以上三個(gè),只要有一個(gè)不同,就是重載

public static void main(String[] args) {
 //function();
 }
 /*
 * 寫方法,看其他的方法,是否與本方法重載
 */
 public static void function() {

 }
 public static void function(int a) {

 }

 public static int function(double a) {
 return 0;
 }
?
 void function(int a, int b) {

 }
 public static void function(double b,int a) {

 }

 public static void function(int a, double b) {

 }<
  • 方法重載調(diào)用練習(xí)
    public static void main(String[] args) {
     function((byte)1);
     function((short)1);
     function(1L);
     }

     public static void function() {
     System.out.println("這是無參數(shù)的方法");
     }

     public static void function(byte b) {
     System.out.println("字節(jié)型參數(shù)的方法: "+b);
     }

     public static void function(short s) {
     System.out.println("短整型參數(shù)的方法: "+s);
     }

     public static void function(int i) {
     System.out.println("整型參數(shù)的方法: "+i);
     }

     public static void function(long l) {
     System.out.println("長整型參數(shù)的方法: "+l);
     }
  • 方法重載練習(xí)

    需求 : 方法定義實(shí)現(xiàn)乘法表

    用戶如果傳遞參數(shù),就按照他傳遞參數(shù)輸出乘法表

    用戶不傳遞參數(shù),輸出99的, 默認(rèn)

/*
 *   需求 : 方法定義實(shí)現(xiàn)乘法表
 用戶如果傳遞參數(shù),就按照他傳遞參數(shù)輸出乘法表
 用戶不傳遞參數(shù),輸出99的, 默認(rèn)

 本案例的存在的問題 : 代碼出現(xiàn)了重復(fù) (很大重復(fù))
 進(jìn)行簡化,不能有這么大的重復(fù)

 方法: 共性代碼的抽取
 */
public class MethodDemo07 {
 public static void main(String[] args) {
 printChengFaBiao(5);
 }

 /*
 * 寫有參數(shù)的方法,傳遞什么,輸出什么
 */
 public static void printChengFaBiao(int num) {
 //實(shí)現(xiàn)乘法表的功能
 for(int i = 1 ; i <= num ; i++) {
 for(int j = 1; j <= i ; j++) {
 System.out.print(j+"*"+i+"="+j*i+"\t");
 }
 System.out.println();
 }
 }

 /*
 * 寫無參數(shù)的方法,實(shí)現(xiàn)輸出99乘法表
 * 上面的方法,是帶有參數(shù)的方法,傳遞9,就是99乘法表
 * 在本方法中,調(diào)用上面的方法,傳遞9
 */
 public static void printChengFaBiao() {
 printChengFaBiao(9);

 //實(shí)現(xiàn)乘法表的功能
 /*
 * for(int i = 1 ; i <= 9 ; i++) { for(int j = 1; j <= i ; j++) {
 * System.out.print(j+"*"+i+"="+j*i+"\t"); } System.out.println(); }
 */
 }
}

方法參數(shù)的傳遞效果

  • 方法的參數(shù)是基本數(shù)據(jù)類型
public static void main(String[] args) {
 //定義2個(gè)變量
 int a = 1;
 int b = 2;
 //調(diào)用方法change,傳遞實(shí)際參數(shù)
 change(a, b);
 System.out.println(a); // a = 1
 System.out.println(b); // b = 2
 }
 /*
 * 定義方法,傳遞2個(gè)整數(shù)值
 * 不返回
 */
 public static void change(int a, int b) {
 a = a + b;
 b = b + a;
 }
方法的參數(shù)是基本數(shù)據(jù)類型.jpg
  • 方法的參數(shù)是引用數(shù)據(jù)類型
    public static void main(String[] args) {
     int[] arr = {1,2,3};
     System.out.println(arr[0]); // 1
     //調(diào)用方法change,傳遞數(shù)組,傳遞到方法參數(shù)的也是內(nèi)存的地址
     change(arr);
     System.out.println(arr[0]); // 100
     }

     //change方法參數(shù),寫數(shù)組, 方法參數(shù)接收到的也是地址
     public static void change(int[] arr) {
     //修改數(shù)組中的元素值
     arr[0] = 100;
     }
方法的參數(shù)問題_引用數(shù)據(jù)類型.jpg
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末亥贸,一起剝皮案震驚了整個(gè)濱河市析蝴,隨后出現(xiàn)的幾起案子凸丸,更是在濱河造成了極大的恐慌怎棱,老刑警劉巖九默,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蒸殿,死亡現(xiàn)場離奇詭異择克,居然都是意外死亡恬总,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門肚邢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來壹堰,“玉大人,你說我怎么就攤上這事骡湖〖溃” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵响蕴,是天一觀的道長谆焊。 經(jīng)常有香客問我,道長浦夷,這世上最難降的妖魔是什么懊渡? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮军拟,結(jié)果婚禮上剃执,老公的妹妹穿的比我還像新娘。我一直安慰自己懈息,他們只是感情好肾档,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辫继,像睡著了一般怒见。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上姑宽,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天遣耍,我揣著相機(jī)與錄音,去河邊找鬼炮车。 笑死舵变,一個(gè)胖子當(dāng)著我的面吹牛酣溃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纪隙,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼赊豌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了绵咱?” 一聲冷哼從身側(cè)響起碘饼,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎悲伶,沒想到半個(gè)月后艾恼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡麸锉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年蒂萎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淮椰。...
    茶點(diǎn)故事閱讀 39,981評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡五慈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出主穗,到底是詐尸還是另有隱情泻拦,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布忽媒,位于F島的核電站争拐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏晦雨。R本人自食惡果不足惜架曹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望闹瞧。 院中可真熱鬧绑雄,春花似錦、人聲如沸奥邮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洽腺。三九已至脚粟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蘸朋,已是汗流浹背核无。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留藕坯,地道東北人团南。 一個(gè)月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓噪沙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親已慢。 傳聞我的和親對象是個(gè)殘疾皇子曲聂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評論 2 355