Java基礎語法部分
阿新 • • 發佈:2022-12-03
第一天(12.01)
- 語句以分號結束
- 起名以'_','$'和字母開頭
- 使用final定義常量
- '^'表示異或,相同為false
算術運算子'+'的使用
-
從左到右逐個執行
-
只要有字串參與,就會將前後拼接
System.out.printIn("abc"+true); //abctrue
System.out.printIn(2+1+"abc"+2+1); //3abc21
-
字元+字元 或 字元+數字 時,會將字元轉換為ASCII碼對應值再運算
輸入
點選檢視程式碼
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
基本資料型別
型別轉換
- 底層型別是二進位制位數增加和刪除,注意最前一位都是符號位
隱式:1100 0100 --> 0000 0000 1100 0100
強制: 1001 0101 1100 0100 --> 1100 0100
隱式轉換
- 取值範圍小 --> 取值範圍大
- int<long<float<double
轉換場景
- 小範圍與大範圍運算時,小範圍自動轉換為大範圍再進行運算,並最終返回大範圍型別資料
- byte,short,char在進行任何運算時都會先轉換為int再運算
- 在使用 +=, -= ,*= ,/= ,%= 時底層都隱藏了強制型別轉換
強制型別轉換
- 取值範圍小 <-- 取值範圍大
短路邏輯運算子
- && 和 ||
- 前面條件能夠判斷則跳出,提高程式效率
三元運算子
- 三元運算子的結構必須被使用
'&' 的用法('|' 同理)
- 作為邏輯連線運算子連線兩個表示式
- 可以用在 數字和數字 字元和數字 字元和字元 之間使得其轉換而成的十進位制數在底層通過按位與的方式運算
- 計算機中的數的儲存方式都是補碼,按位與運算結果也是補碼,因此計算結果需要特別注意收尾符號位
左移和右移
a << 2
a >> 2
- 底層邏輯也是二進位制左右移,相當於乘除2en
流程控制
if
- if後的大括號省略時,如果直接寫
int a = 100;
會報錯,該語句包含定義和賦值兩句 - 支援else if最後不加else
第二天(12.02)
- 使用 sout+Tab 快速輸出
-
System.out.print()
在使用時不會換行 - sc.nextLine()可用於鍵盤讀入字串
switch
- switch中路由是byte,short,int,char,列舉,字串
- default位置可以隨意
- JDK12的switch簡化寫法
case 1 -> System.out.printIn("number為1");
- switch使用於離散值,if可用於連續值
- 支援多個值匹配(注意JDK版本)
case 1,2,3,4,5: System.out.printIn("workday");
for
- 鍵入 5.fori+Tab 快速寫迴圈(迴圈5次)
- continue:結束本次迴圈,開始下次迴圈
案例:判斷迴文數
生成1-99之間隨機數
點選檢視程式碼
Random r = new Random();
int num = r.nextInt(1,100); //記得配置高版本jdk
System.out.println(num);
陣列
- 定義
int[] array = new int[]{1,2,3,4}; //靜態
int[] arr = new int[3]; //動態
- 使用去arr.length獲取陣列長度
- 快速遍歷陣列快捷 arr(陣列名).fori + Tab,然後填入語句
- 陣列初始值定義規律
- 陣列以以下方式複製時,只複製引用,實質上指向同一塊空間
點選檢視程式碼
int[] arr1 = {1,2,3};
int[] arr2 = arr1;
第三天
- psvm + Tab 快捷創造程式主入口
- 選中程式碼中重複部分 + ctrl + Alt + M 自動抽取方法
- 上述引數定義放在選取部分之外
System.out.println();// 只做換行不輸出
- ctrl + Alt + L 格式化程式碼
方法過載
- 同一個類方法名相同
- 引數不同(個數,型別,順序)
- 與返回值型別無關(返回值型別可以不同)
- 進行隨機抽取時,可將所有需要抽取的元素放入陣列,隨後隨機生成陣列的下標
注意Java中的記憶體空間分配
- 分為棧和堆兩部分
- 棧用於儲存程式執行過程的方法以及方法中定義的基本資料型別
- 對用於儲存程式執行過程中建立的引用型別資料
- 棧中方法出棧後資料消失(作用域),而堆中的資料不會隨著某個方法出棧而消失,只在程式全部執行完畢後釋放
二維陣列
- 陣列定義
int[][] arr = new int [][]{{11,22,33},{44,55}};
int[][] arr = new int [2][]; //允許不定義第一位陣列長度
- 允許後續使用別的陣列引用對二維陣列進行重新賦值
- 記憶體形式