Java學習路線-1:編程入門

      網友投稿 835 2022-05-30

      1、編程基礎自測考試

      2、Java發展簡介

      完善的生態系統

      OAK(橡樹)平臺

      HotJava瀏覽器

      sun: Stanford University NetWork

      Java 標準開發 J2SE、JAVA SE

      Java 嵌入式開發 J2ME、JAVA ME

      Java 企開開發 J2EE、JAVA EE

      3、Java語言特點

      1、行業內通用的技術實現標準

      2、面向對象編程語言

      3、提供了內存回收處理機制

      4、避免了復雜的指針問題

      5、支持多線程編程

      6、高效的網絡處理能力

      7、良好的可移植性

      8、語言足夠簡單

      4、Java可移植性

      JVM Java虛擬機(Java Virtual Machine)

      JVM 調優問題

      編譯型 + 解釋型

      Java源文件.java -> 字節碼.class -> 機器碼

      5、JDK簡介

      生產環境使用JDK1.8

      JDK Java Development Kit(包含JRE)

      JRE Java Runtime Envrinment

      6、JDK安裝與配置

      環境變量配置

      Windows: Path

      編譯命令:javac.exe

      解釋命令:java.exe

      7、編程起步

      源代碼:Hello.java

      public class Hello{ // 中括號[] 可在變量名前,也可以在后 public static void main(String[] args) { System.out.println("Hello World!"); } }

      1

      2

      3

      4

      5

      6

      編譯執行

      $ ls Hello.java $ javac Hello.java # 編譯文件為字節碼文件 $ ls Hello.class Hello.java $ java Hello # JVM執行java程序 Hello World!

      1

      2

      3

      4

      5

      6

      7

      8

      9

      1、定義類:

      public class 類名 {} // 類名必須與文件名一致 class 類名 {} // 類名可以與文件名不一致

      1

      2

      在一個.java文件中,可以有多個class定義

      一個java文件中,只能有一個public class(推薦)

      命名規范:每個單詞的首字母大寫

      2、主方法

      程序執行起點,一定要定義在類中

      主方法所在類,稱為主類

      3、系統輸出

      System.out.println(); // 輸出換行 line System.out.print(); // 輸出不換行

      1

      2

      8、JShell工具

      JDK > 1.9

      $jshell jshell>

      1

      2

      9、CLASSPATH環境屬性

      默認為當前所在目錄

      export CLASSPATH=. # Linux set CLASSPATH=. # Windows 可配置為系統變量

      1

      2

      PATH # 操作系統提供的路徑配置,定義所有可執行程序路徑 CLASSPATH # JRE提供的加載類的路徑

      1

      2

      10、注釋

      編譯時不處理注釋

      // 單行注釋 /* 多行注釋 */ /** 文檔注釋 */

      1

      2

      3

      11 標識符與關鍵字

      標識符:

      包含:字母、數字、_、$ 字母開頭

      1

      2

      關鍵字

      特殊含義,如class

      JDK 1.4 assert 用于異常處理

      JDK 1.5 enum 用于枚舉定義

      未使用:goto、const

      特殊含義:true、false、null

      12、Java數據類型簡介

      分類

      基本數據類型:具體的數字單元 數值型 -整型:byte-8、short-16、 int-32、long-64 # 默認值 0 -浮點型:float-32、double-64 # 默認值 0 布爾型:boolean # 默認值 false 字符型:char-16 # 默認值 \u0000 引用數據類型:涉及內存關系的使用 數組、類、接口 # 默認值null

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      參考原則

      描述數字:整數int、小數double

      數據傳輸、文字編碼轉換:byte(二進制操作)

      處理中文:char

      描述內存或文件大小,自增主鍵:使用long

      13、整型數據類型

      定義

      // int 變量名稱 = 常量; int x = 10;

      1

      2

      范例:超過int范圍

      數據溢出

      // int int變量 = int數值 int max = Integer.MAX_VALUE; // 獲取int最大值 int min = Integer.MIN_VALUE; // 獲取int最小值 System.out.println("min: " + min); System.out.println("max: " + max); // int變量 + int常量 = int結果 System.out.println("max + 1: " + (max + 1)); System.out.println("================="); // long long變量 = int數值 long long_max = Integer.MAX_VALUE; long long_min = Integer.MIN_VALUE; System.out.println("long_min: " + long_min); System.out.println("long_max: " + long_max); // long變量 + int常量 = long結果 System.out.println("long_min + 1: " + (long_max + 1)); /* min: -2147483648 max: 2147483647VAl max + 1: -2147483648 ================= long_min: -2147483648 long_max: 2147483647 long_min + 1: 2147483648 */

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      數值常量默認是int

      數值常量后面加L(推薦)或l轉換為long型

      long l = 123L;

      1

      自動類型轉換:小類型 -> 大類型

      強制類型轉換:大類型 -> 小類型

      long l = 123; // 自動轉換 int i = (int)123; // 強制轉換(不建議) byte b = 200; // 錯誤: 不兼容的類型: 從int轉換到byte可能會有損失

      1

      2

      3

      4

      常量會自動轉換

      變量需要強制轉換

      14、浮點型數據

      小數常量對應double

      // 定義double double x = 10.2; // double + int = double // 定義float float x = (float)10.2; // 強制轉換 float y = 10.2F; // int / int => int // 10/4=2 // (double)int / int => double // (double)10/4 = 2.5

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15、字符型

      單引號’'描述

      1、定義字符變量

      // 定義字符變量 char c = 'B'; // 獲取字符編碼 int num = c;

      1

      2

      3

      4

      5

      6

      任何編程語言的字符都可以與int進行轉換

      2、小寫轉大寫示例

      char a = 'a'; int num = a; num = num - 32; System.out.println((char)num); // A

      1

      2

      3

      4

      5

      3、保存中文數據

      java使用Unicode十六進制的編碼,可以包含任意字符

      char a = '中'; int num = a; System.out.println(num); // 20013

      1

      2

      3

      16、布爾型

      // 定義布爾型 boolean flag = true; // 執行判斷邏輯 if (flag){ System.out.println("true"); }else{ System.out.println("false"); } // true

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      部分編程語言不提供布爾型,使用0替代false,其他值替代true

      java中布爾型的取值為:true,false

      17、String字符串

      任何編程語言里都沒有提供所謂字符串這種基本數據

      雙引號""描述字符串

      String str = "Hello"; // 字符串描述 str = str + " World"; // 字符串連接 str += "!"; System.out.println(str); // Hello World!

      1

      2

      3

      4

      5

      Java中:數據范圍大類型 + 數據范圍小類型(自動轉為范圍大的類型)

      如果有字符串String,所有數據類型都會轉為String類型

      System.out.println("數值計算結果:" + (1 + 1)); // 數值計算結果:2 System.out.println("字符拼接結果:" + 1 + 1); // 字符拼接結果:11

      1

      2

      3

      4

      5

      轉義字符, 多用于打印輸出

      Tab \t 換行 \n 引號 \" 單引號 \' 斜線 \

      1

      2

      3

      4

      5

      18、運算符簡介

      所有的程序開發,都是一種數字的處理游戲

      對于數字處理的操作模式就稱為運算符

      程序會提供基礎運算符,存在優先級(括號優先級最高)

      19、數學運算符

      支持四則運算

      簡化運算符

      +=、-=、*=、/=、%= ++變量、--變量:先進行變量自增自減,而后再進行數字計算 變量++、變量--:先使用變量進行計算,再進行變量自增自減

      1

      2

      3

      4

      內存較少的時候使用,現在不推薦使用

      int x = 10; int y = 20; // (++x) + (y--) => 11 + 20 = 31; x=11; y=19 int result = ++ x + y--; System.out.println("result: " + result); System.out.println("x: " + x); System.out.println("y: " + y); // result: 31 // x: 11 // y: 19

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      20、關系運算符

      >、< >=、<= == 比較 // = 賦值

      1

      2

      3

      4

      所有的關系判斷返回值都是boolean

      數據類型之間提供自動轉型支持,字符判斷會自動轉為int

      char c = '中'; boolean flag = c > 1; System.out.println(flag); // true

      1

      2

      3

      4

      5

      21、邏輯運算符

      三目運算符

      關系運算 ? 滿足時的內容: 不滿足時的內容

      1

      判斷字符大小, 嵌套層數不宜過多

      int x = 10; int y = 20; // int max = x > y ? x : y; int max; if (x > y){ max = x; } else{ max = y; } System.out.println(max); // 20

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      22、位運算

      直接進行二進制數據的計算處理

      與 & 或 | 異或 ^ 反碼 ~ 移位 << >>

      1

      2

      3

      4

      5

      十進制與二進制轉換

      數字除2取余

      # 十進制轉二進制 13 / 2 = 6 ...1 6 / 2 = 3 ...0 3 / 2 = 1 ...1 1 / 2 = 0 ...1 13 => 1101 # 將10從十進制轉二進制 $ echo "obase=2;10"|bc # 二進制轉為十進制 8 4 2 1 1 1 0 1 => 8 + 4 + 1 = 13

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      位運算

      13 1101 7 0111 & 0101 => 5 | 1111 => 15 ^ 1010 => 10

      1

      2

      3

      4

      5

      6

      移位計算

      // 2的3次方 8 2 << 2 = 8 2 -> 0010 -> 1000 -> 8

      1

      2

      3

      4

      區別 & && | ||

      1、& | 位運算和邏輯運算

      邏輯判斷的時候,所有判斷都要執行

      位運算的時候只是對當前數據進行與和或處理

      2、&& || 短路運算

      && 如果前面條件返回false,后續條件不再執行

      || 如果前面條件返回true,后續條件不再執行

      23、IF分支結構

      順序結構,分支結構,循環結構

      if語句 針對關系表達式進行判斷處理的分支操作

      if (boolean){ } [else { // 可選 }]

      1

      2

      3

      4

      5

      24、SWITCH開關語句

      可以判斷

      int、char、枚舉、String(JDK >= 1.7)

      1

      如果沒有在case后面追加break,那么會從case條件開始執行到最后

      switch(數據) { case 數值: { [break;] } case 數值: { [break;] } default: { } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      示例

      String s = "Hello"; switch (s){ case "hello": { System.out.println("hello"); break; } case "Hello": { System.out.println("Hello"); break; } default: { System.out.println("default"); } } // Hello

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      25、while循環

      循環結構:某一段代碼被重復執行

      如果不修改循環條件,會造成死循環

      // 至少執行 0 次 常用 while (boolean) { } // 至少執行 1 次 do { } while (boolean); // 注意這里的分號

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      26、for循環

      for (定義循環初始值; 循環判斷; 修改循環參數) { } // eg: int sum = 0; for (int i = 1; i < 10; i++) { sum += i; } System.out.println(sum); // 45

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      while 和 for循環選擇

      1、明確循環次數,優先選擇for循環

      2、不知道循環次數,但是知道循環結束條件,選擇while循環

      27、循環控制

      break 退出整個循環結構

      continue 結束當前循環,直接進入下一次循環,可以實現部分goto功能

      C語言中的goto 不建議使用

      // 使用continue 跳出兩層循環 不建議使用 Point: for (int i = 1; i < 3; i++) { for (int j = 1; j < 3; j++) { if (i == j) { continue Point; } System.out.println(i + " + " + j + " = " + (i + j)); } } /* 不使用 continue Point; 1 + 1 = 2 1 + 2 = 3 2 + 1 = 3 2 + 2 = 4 使用 continue Point; 2 + 1 = 3 */

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      28、循環嵌套

      循環嵌套:循環語句中嵌套其他循環語句

      嵌套層次越多,復雜度越高

      實例1、打印乘法口訣表

      for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { System.out.print(j + " * " + i + " = " + (i * j) + "\t"); } System.out.println(); } /* 1 * 1 = 1 1 * 2 = 2 2 * 2 = 4 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 ... */

      1

      2

      3

      4

      Java學習路線-1:編程入門

      5

      6

      7

      8

      9

      10

      11

      12

      實例2、打印金字塔

      int sum = 5; // 總行數 // 打印乘法口訣表 for (int i = 1; i <= sum; i++) { // 打印空格 for (int j = 1; j <= sum - i; j++) { System.out.print(" "); } // 打印星星 for(int k = 1; k <= i; k++) { System.out.print("* "); } System.out.println(); } /* * * * * * * * * * * * * * * * */

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      29、方法的定義

      方法method,函數function

      方法本質:

      方便使用者重復調用的一段代碼塊

      前提:

      方法在主類中定義,并且由主方法直接調用

      public static 返回值類型 方法名稱([參數類型 參數名...]){ // 方法要執行的代碼 [return[返回值];] }

      1

      2

      3

      4

      返回值可以使用基本數據類型和引用數據類型

      返回值類型要和定義返回值類型一致

      不返回值使用void, 可以使用return結束調用

      方法名命名規范:

      第一個單詞小寫,后續單詞首字母大寫

      30、方法重載

      定義:方法名相同,參數的類型或個數不同的時候就稱為方法重載

      和返回值沒有關系

      開發原則:

      方法重載,建議相同的返回值

      eg:

      System.out.println(10); System.out.println('A'); System.out.println("hello");

      1

      2

      3

      自定義方法重載

      public static void main(String[] args) { int resultA = sum(10, 10); int resultB = sum(10, 10, 10); double resultC = sum(10.1, 10.2); System.out.println(resultA); // 20 System.out.println(resultB); // 30 System.out.println(resultC); // 20.299999999999997 } // 定義求和方法 public static int sum(int a, int b) { return a + b; } public static int sum(int a, int b, int c) { return a + b + c; } public static double sum(double a, double b) { return a + b; }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      31、方法遞歸調用

      遞歸調用:一個方法自己調用自己

      注意:

      1、一定要設置遞歸調用的結束條件

      2、每次調用一定要修改傳遞的參數條件

      遞歸不建議用,處理不當會造成堆棧溢出

      while實現1-10累加

      int x = 1; int sum = 0; while (x <= 10) { // 結束條件 sum += x; x++; // 參數條件 } System.out.println(sum); // 55

      1

      2

      3

      4

      5

      6

      7

      8

      遞歸實現1-10累加

      public static void main(String[] args) { int s = sum(10); System.out.println(s); // 55 } public static int sum(int num) { if (num == 1) { // 結束條件 return 1; } else { return num + sum(num - 1); // 參數變化 } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      Java 數據結構

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:WEB安全防護相關響應頭(上)
      下一篇:游戲開發中的物理介紹
      相關文章
      2020国产精品亚洲综合网| 久久精品国产亚洲av瑜伽| 中文字幕亚洲综合久久2| 亚洲AV成人无码久久WWW| 亚洲精品日韩专区silk| 亚洲午夜成人精品电影在线观看| 亚洲AV无码专区亚洲AV桃| 久久亚洲最大成人网4438| 亚洲国产人成在线观看69网站| 国产亚洲精品无码成人| 91麻豆国产自产在线观看亚洲 | 国产成人高清亚洲一区91| 亚洲欧美精品午睡沙发| 国产亚洲人成在线播放| 国产亚洲精品AAAA片APP| 亚洲AV香蕉一区区二区三区| 亚洲AV日韩AV永久无码色欲| 成a人片亚洲日本久久| 99亚洲乱人伦aⅴ精品| 亚洲国产精品13p| 久久精品国产精品亚洲艾草网美妙| 在线亚洲v日韩v| 亚洲成网777777国产精品| 亚洲精品视频免费| 自拍偷自拍亚洲精品被多人伦好爽| 国产午夜亚洲精品理论片不卡 | 久久人午夜亚洲精品无码区| 国产精品亚洲а∨无码播放不卡 | 妇女自拍偷自拍亚洲精品| 亚洲福利视频一区二区| 中文字幕在线亚洲精品| 亚洲成AV人片天堂网无码| 亚洲一区二区成人| 亚洲一卡2卡3卡4卡国产网站| 亚洲偷自拍另类图片二区| 久久精品国产亚洲av天美18| www.亚洲色图.com| 国产gv天堂亚洲国产gv刚刚碰| 亚洲乱码国产乱码精品精| 久久青青草原亚洲AV无码麻豆| 久久亚洲私人国产精品vA |