1. 程式人生 > 其它 >Java基礎語法部分

Java基礎語法部分

第一天(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][]; //允許不定義第一位陣列長度
  • 允許後續使用別的陣列引用對二維陣列進行重新賦值
  • 記憶體形式