一、Java語言基礎
1、鍵盤錄入
- 導包:
import java.util.Scanner;
- 創建鍵盤錄入對象:
Scanner sc = new Scanner(System.in);
- 通過對象獲取數據:
int x = sc.nextInt();
2、方法
2.1 方法概述和格式說明
- 簡單來說:方法就是完成特定功能的代碼塊
在很多語言裏面都有函數的定義,而在java中函數被稱爲方法 - 格式:
修飾符 返回值類型 方法名(參數類型 參數名1,參數類型 參數名2...){
函數體;
return 返回值;
}
- 詳細解釋:
- 修飾符:目前就用public static ,後面我們再詳細的講解其他的修飾符。
- 返回值類型:就是功能結果的數據類型
- 方法名:符合命名規則即可
- 參數:
- 實際參數:就是實際參與運算的
- 形式參數:就是方法定義上的,用於接受實際參數的
- 參數類型:就是參數的數據類型
- 參數名:就是變量名
- 方法體語句:就是完成功能的代碼
- return:結束方法的
返回值:就是功能的結果,由return帶給調用者
2.2方法注意事項
- 方法不執行不定義
- 方法與方法是平級關係,不能嵌套定義
- 方法定義的時候參數之間用逗號隔開
- 方法調用的時候不用再傳遞數據類型
- 如果方法有明確的返回值,一定要有return帶回一個值
2.3方法重載概述
在同一個類中,允許存在一個以上的同名方法,只要它們的參數個數或者參數類型不同即可
參數列表不同有兩種情況:
- 參數類型不同
- 參數個數不同
2.4方法重載的特點
- 與返回值類型無關,只看方法名和參數列表
- 在調用時,虛擬機通過參數列表的不同來區分同名方法
2.5Java中的參數傳遞問題
- 基本類型:形式參數的改變對實際參數沒有影響
- 引用類型:形式參數的改變直接影響實際參數
3、數組
3.1 數組的概括
- 數組是存儲同一個數據類型多個元素的集合,也可以看成是一個容器
- 數組既可以存儲基本數據類型,也可以存儲引用數據類型
3.2 數組的定義格式
- 格式1:數據類型 [] 數組名
- 格式2:數據類型 數組名 []
注意:這兩種定義做完後,數組中是沒有元素值的,應該對數組的元素進行初始化
3.3 數組初始化概述
java中的數組必須先初始化,然後才能使用
所謂初始化:就是爲數組中的數組元素分配內存空間,併爲每個數組元素賦值
3.4 數組的初始化方式
- 動態初始化:初始化時只指定數組長度,由系統爲數組分配初始值
- 格式:
數據類型 [] 數組名 = new 數據類型 [數組長度];
- 數組長度其實就是數組中元素的個數
- 格式:
- 靜態初始化:初始化時指定每個數組元素的初始值,由系統決定數組長度
- 格式:
數據類型 [] 數組名 = new 數據類型 {元素1,元素2......}
- 格式:
注意:不要同時進行動態初始化和靜態初始化
例如:int [] arr = new int [3] {1,2,3};//錯誤
3.5 java中的內存分配
java程序在運行時,需要在內存中的分配空間,爲了提高運算效率,有對空間進行了不用的區域劃分,因爲每一片區域都有特定的處理數據方式和內存管理方式
- 棧:存儲局部變量
- 堆 :存儲new出來的東西
- 方法區:面向對象部分詳細講解
- 本地方法區:和系統相關
- 寄存器:給cpu使用
- 局部變量:在方法定義中或者方法聲明上的變量都稱爲局部變量
- 堆內存的特點
- 每一個new出來的東西都有地址值
- 每個變量都有默認值
float,double:0.0 char:'\u0000' boolean:false; 引用類型:null
- 使用完畢就變成了垃圾,但是並沒有立即回收,會在垃圾回收期空閒的時候
- 棧內存的數據用完就釋放掉
例如:
int [] arr = new int [3];
System.out.println(arr);//地址值
System.out.println(arr[0]);//0
System.out.println(arr[1]);//0
System.out.println(arr[2]);//0
棧和堆的變化如下:
3.6 數組操作的兩個常用小問題
-
ArrayIndexOutOfBoundsException
:數組索引越界異常
原因:你訪問了不存儲的索引 -
NullPointerException
:空指針異常
原因:數組已經不再指向堆內存了,而你還用數組名去訪問元素
3.7 數組的長度
數組提供了一個屬性length,用於獲取數組的長度
格式:數組名.length
3.8 二維數組概述
二維數組就是一個元素爲一維數組的元素
3.9 二維數組定義格式
- 格式1:
數據類型 [][] 變量名 = new 數據類型 [m][n];
m表示這個二維數組有多少個一維數組
n表示每一個一維數組的元素個數 - 格式2:
數據類型 [][] 變量名 = new 數據類型 [m][];
m表示這個二維數組有多少個一維數組
這一次沒有直接給出一維數組的元素個數,可以動態的給出 - 格式3:
數據類型 [][] 變量名 = new 數據類型 [][]{{元素...},{元素...},{元素...}};
變化版格式:
數據類型 [][] 變量名 = {{元素...},{元素...},{元素...}};