1. 程式人生 > >JAVA 入門教程3

JAVA 入門教程3

01_Java語言基礎(陣列概述和定義格式說明)

  • A:為什麼要有陣列(容器)
    陣列是儲存多個變數(元素)的東西
    這多個變數的資料型別要一致
  • B:陣列概念
    陣列是儲存同一種資料型別多個元素的集合。頁可以看成是一個容器。
    陣列既可以儲存基本資料型別,也可以儲存引用資料型別。
  • C:陣列定義格式
    資料型別[] 陣列名 = new 資料型別[陣列的長度];

02_Java語言基礎(陣列的初始化動態初始化)

  • A:什麼是陣列的初始化
    為陣列中陣列元素分配記憶體空間,併為每個陣列元素賦值。
  • B:如何物件陣列進行初始化
  • new 是一個關鍵字,用來建立實體物件
    • a:動態初始化 只指定長度,由系統給出初始化值
      • int[] arr = new int[5];
    • b:靜態初始化 給出初始化值,由系統決定長度。
      • int[] arr = new int[]{1,2,3,4,5};
      • int[] arr = {1,2,3,4,5};
  • C:動態初始化的格式:
    • 資料型別[] 陣列名 = new 資料型別[陣列長度];

03_Java語言基礎(Java中的記憶體分配以及棧和堆的區別)

  • A:棧:儲存區域性變數(方法中和方法上的變數)
  • B:堆:儲存new出來的東西
  • C:方法區
  • D:本地方法區(和系統有關)
  • E:暫存器(cpu使用)

04_Java語言基礎(陣列操作的兩個常見小問題越界和空指標)

* a:ArrayIndexOutOfBoundsException:陣列索引越界異常
    * 原因:你訪問了不存在的索引。
* b:NullPointerException:空指標異常
    * 原因:陣列已經不在指向堆記憶體了。而你還用陣列名去訪問元素。
    * int[] arr = {1,2,3};
    * arr = null;
    * System.out.println(arr[0]);

05_Java語言基礎(陣列的操作遍歷)

* 陣列遍歷:就是依次輸出陣列中的每一個元素。
* 陣列的屬性:arr.**length**陣列的長度
* 陣列的最大索引:arr.length - 1;

6_Java語言基礎(陣列的操作查表法)

* 陣列查表法(根據鍵盤錄入索引,查詢對應星期)

7_Java語言基礎(陣列的操作基本查詢)

* 陣列元素查詢(查詢指定元素第一次在陣列中出現的索引)

8_Java語言基礎(二維陣列概述和格式1的講解)

  • A:二維陣列概述
  • B:二維陣列格式1
    • int[][] arr = new int[3][2];
  • C:二維陣列格式1的解釋
  • D:注意事項

    • a:以下格式也可以表示二維陣列
      • 1:資料型別 陣列名[][] = new 資料型別[m][n];
      • 2:資料型別[] 陣列名[] = new 資料型別[m][n];
    • B:注意下面定義的區別
    • int x;
      int y;
      int x,y;
      
      int[] x;
      int[] y[];
      
      int[] x,y[];    x是一維陣列,y是二維陣列
      

9_Java語言基礎(二維陣列格式講解)

  • 二維陣列格式2
    • int[][] arr = new int[3][];

10_Java語言基礎(二維陣列格式的講解及其記憶體圖解)

  • A:二維陣列格式3
    • int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};

11_Java語言基礎(二維陣列練習1遍歷)

* 需求:二維陣列遍歷

* 外迴圈控制的是二維陣列的長度,其實就是一維陣列的個數。
* 內迴圈控制的是一維陣列的長度。

12_Java語言基礎(二維陣列練習2求和)


  • 需求:公司年銷售額求和
    某公司按照季度和月份統計的資料如下:單位(萬元)
    第一季度:22,66,44
    第二季度:77,33,88
    第三季度:25,45,65
    第四季度:11,66,99

13_Java語言基礎(思考題Java中的引數傳遞問題及圖解)

  • 看程式寫結果,並畫記憶體圖解釋
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println("a:"+a+",b:"+b);
        change(a,b);
        System.out.println("a:"+a+",b:"+b);
    
        int[] arr = {1,2,3,4,5};
        change(arr);
        System.out.println(arr[1]);
    }
    
    public static void change(int a,int b) {
        System.out.println("a:"+a+",b:"+b);
        a = b;
        b = a + b;
        System.out.println("a:"+a+",b:"+b);
    }
    
    public static void change(int[] arr) {
        for(int x=0; x<arr.length; x++) {
            if(arr[x]%2==0) {
                arr[x]*=2;
            }
        }
    }