1.1.1 JAVA概述 Java版本 原網址(https://www.oracle.com/java/technologies/java-se-support-roadmap.html) Oracle 將僅將某些版本指定為長期支持 (LTS) 版本。Java SE 7、8、11 和 17 是 LT ...
1.1.1 JAVA概述
Java版本
原網址(https://www.oracle.com/java/technologies/java-se-support-roadmap.html)
Oracle 將僅將某些版本指定為長期支持 (LTS) 版本。Java SE 7、8、11 和 17 是 LTS 版本。Oracle 打算每兩年發佈一次未來的 LTS 版本,這意味著下一個計劃的 LTS 版本是 2023 年 9 月的 Java 21。
目前實際開發中用的最多的是Java8。
Oracle Java SE 產品支持規劃*† | ||||
---|---|---|---|---|
發佈版本 | 發佈日期 | 首先支持直到 | 延長支持直到 | 持續支持 |
7 (長期) | 2011 年 7 月 | 2019 年 7 月 | 2022 年 7 月**** | 不定 |
8 (LTS)** | 2014 年 3 月 | 2022 年 3 月 | 2030 年 12 月* | 不定 |
9(非 LTS) | 2017 年 9 月 | 2018 年 3 月 | 無法使用 | 不定 |
10(非 LTS) | 2018 年 3 月 | 2018 年 9 月 | 無法使用 | 不定 |
11 (LTS) | 2018 年 9 月 | 2023 年 9 月 | 2026 年 9 月 | 不定 |
12(非 LTS) | 2019 年 3 月 | 2019 年 9 月 | 無法使用 | 不定 |
13(非 LTS) | 2019 年 9 月 | 2020 年 3 月 | 無法使用 | 不定 |
14(非 LTS) | 2020 年 3 月 | 2020 年 9 月 | 無法使用 | 不定 |
15(非 LTS) | 2020 年 9 月 | 2021 年 3 月 | 無法使用 | 不定 |
16(非 LTS) | 2021 年 3 月 | 2021 年 9 月 | 無法使用 | 不定 |
17 (LTS) | 2021 年 9 月 | 2026 年 9 月**** | 2029 年 9 月**** | 不定 |
18(非 LTS) | 2022 年 3 月 | 2022 年 9 月 | 無法使用 | 不定 |
19(非 LTS)*** | 2022 年 9 月 | 2023 年 3 月 | 無法使用 | 不定 |
20(非 LTS)*** | 2023 年 3 月 | 2023 年 9 月 | 無法使用 | 不定 |
21 (LTS)*** | 2023 年 9 月 | 2028 年 9 月 | 2031 年 9 月 | 不定 |
Java技術體系平臺
Java SE(Java Standard Edition)標準版
支持面向桌面級應用(如Windows下的應用程式)的Java平臺,提供了完整的Java核心API,此版本以前稱為J2SE
Java EE(Java Enterprise Edition)企業版
是為開發企業環境下的應用程式提供的一套解決方案。該技術體系中包含的技術如:Servlet、Jsp等,主要針對於Web應用程式開發。版本以前稱為J2EE
Java ME(Java Micro Edition)小型版(僅供瞭解,已經很少用到)
支持Java程式運行在移動終端(手機、PDA)上的平臺,對Java API有所精簡,並加入了針對移動終端的支持,此版本以前稱為J2ME
Java重要特點
-
Java語言是面向對象的(oop)
-
Java語言是健壯的。Java的強類型機制、異常處理、垃圾的自動收集等是Java程式健壯性的重要保證
-
Java語言是跨平臺性的。 (即:一個編譯好的.class文件可以在多個系統下運行,這種特性稱為跨平臺)
-
Java語言是解釋型的[瞭解]
解釋性語言: javascript,PHP, java 編譯性語言:C/ C++
區別是:解釋性語言,編譯後的代碼,不能直接被機器執行,需要解釋器來執行,編譯性語言,編譯後的代碼,可以直接被機器執行, c/c++
Java開發工具
-
editplus 、notepad++、notepad3(前期學習時使用)
-
Sublime Text(前期學習時使用)
-
IDEA(實際開發中使用)
-
eclipse(實際開發中使用)
java運行機制
什麼是JDK、JRE
-
JDK基本介紹
-
JDK的全稱(Java Development Kit Java開發工具包)
JDK = JRE + java的開發工具[java, javac.javadoc,javap等]
-
JDK是提供給Java開發人員使用的,其中包含了java的開發工具,也包括了JRE。所以安裝了JDK,就不用在單獨安裝JRE了。
-
-
JRE基本介紹
-
JRE(Java Runtime Environment Java運行環境)
JRE = JVM + Java的核心類庫[類]
-
包括Java虛擬機(JVM Java Virtual Machine)和Java程式所需的核心類庫等,如果想要運行一個開發好的Java程式,電腦中只需要安裝JRE即可。
-
JDK安裝與配置
略(網上有很多,學習建議安裝Java8)
Java快速入們
-
需求說明
要求開發一個Hello.java程式,可以輸出“hello,world!"
-
開發步驟
- 將Java代碼編寫到擴展名為Hello.java的文件中。[代碼說明]
- 通過javac命令對該java文件進行編譯,生成.class文件。
- 通過java命令對生成的class文件進行運行。
-
運行流程示意圖
第一個Java程式
創建Hello.java文件
寫入如下內容:
//java快速入門
//對代碼的相關說明
//1. public class Hello表示Hello是一個類,是一個public公有的類
//2.Hello{}表示一個類的開始和結束
//3. public static void main(String[] args)表示一個主方法,即我們程式的入口
//4. main(){0}表示方法的開始和結束
//5. System.out.println( "hello, world~");表示輸出"hello, world~"到屏幕
//6.;表示語句結束
public class Hello{
//編寫一個main方法
public static void main(String[] args){
System.out.println("Hello world");
}
}
在cmd中使用javac Hello.java命令生成Hello.class文件(註意:cmd中使用的是GBK編碼,所以此處Hello.java保存時也應用此編碼格式,否則會報錯)
在cmd中使用java Hello命令運行Hello.class文件(其中"Hello"為類名,而非“Hello.class”文件名,如果使用“java Hello.class”指令會報錯)
Java開發註意事項和細節說明
-
Java源文件以.java為擴展名。源文件的基本組成部分是類(class),如本類中的Hello
類。 -
Java應用程式的執行入口是main()方法。它有固定的書寫格式:public static void main(Stringl]args){...}
-
Java語言嚴格區分大小寫。
-
Java方法由一條條語句構成,每個語句以“;”結束。
-
大括弧都是成對出現的,缺一不可。[習慣,先寫爭再寫代碼]
-
一個源文件中最多只能有一個public類。其它類的個數不限。[演示]
//一個源文件中最多只能有一個public類。其它類的個數不限。[演示]//Dog是一個類
//編譯後,每一個類,都對於一個.class。(此文件編譯後會生成三個.class文件)
public class Hello{
public static void main(String[] args){
System.out.println("Hello world");
}
}
class Dog{
}
class Tiger{
}
-
如果源文件包含一個public類,則文件名必須按該類名命名!
-
一個源文件中最多只能有一個public類。其它類的個數不限,也可以將main方法寫在非public類中,然後指定運行非public類,這樣入口方法就是非public的main方法
Java常用的轉義字元
- \t :一個製表位,實現對齊的功能
- \n:換行符
- \:一個\
- \”:一個"
- \':一個'
- \r :一個回車 System.out.println("順平教育\r北京");
public class Changechar{
//編寫一個main方法
public static void main(String[] args){
//\t :一個製表位,實現對齊的功能
System.out.println("北京\t天津\t上海");
// \n:換行符
System.out.println( "jack\nsmith\nmary" );
//\\:一個\ \\
System.out.println( "C:\\windows\\lSystem32\\cmd. exe");
// \" :一個"
System.out.println("老韓說:\"要好好學習java,有前途\"");
//\' :一個'
System.out.println("老韓說:\'要好好學習java,有前途\'");
// \r :一個回車 System. out.println("韓順平教育\r北京");
//解讀
//1.輸出韓順平教育
//2.\r表示回車(不換行,會把游標移動到行首)
System.out.println("韓順平教育\r北京");// 北京平教育
System.out.println("韓順平教育\r\n北京");// 韓順平教育\n北京(不同系統會有差異)
}
}
初學java易犯錯誤
-
找不到文件
解決方法:源文件名不存在或者寫錯,或者當前路徑錯誤
-
主類名和文件名不一致
解決方法:聲明為public的主類應與文件名一致,否知編譯失敗
-
缺少分號
解決方法:編譯失敗,註意錯誤出現的行數,再到源代碼中指定位置改錯。
註釋(comment)
-
單行註釋:
基本棓式
格式: //註釋文字
-
多行註釋:
基本格式
格式: /*註釋文字*/
-
使用細節
-
被註釋的文字,不會被JVM (java虛擬機)解釋執行
-
多行註釋裡面不允許有多行註釋嵌套
-
-
文檔註釋:
註釋內容可以被JDK提供的工具javadoc所解析,生成一套以網頁文件形式體現的該程式的說明文檔,一般寫在類-
基本格式
/** *author 韓順平 *@version 1.0 *..... */
-
如何生成對應的文檔註釋
javadoc -d 文件夾名 -xx -yy Demo3.java -
javadoc標簽
javadoc 工具軟體識別以下標簽(參考網站:https://www.runoob.com/java/java-documentation.html):標簽 描述 示例 @author 標識一個類的作者 @author description @deprecated 指名一個過期的類或成員 @deprecated description {@docRoot} 指明當前文檔根目錄的路徑 Directory Path @exception 標誌一個類拋出的異常 @exception exception-name explanation {@inheritDoc} 從直接父類繼承的註釋 Inherits a comment from the immediate surperclass. {@link} 插入一個到另一個主題的鏈接 {@link name text} {@linkplain} 插入一個到另一個主題的鏈接,但是該鏈接顯示純文本字體 Inserts an in-line link to another topic. @param 說明一個方法的參數 @param parameter-name explanation @return 說明返回值類型 @return explanation @see 指定一個到另一個主題的鏈接 @see anchor @serial 說明一個序列化屬性 @serial description @serialData 說明通過writeObject( ) 和 writeExternal( )方法寫的數據 @serialData description @serialField 說明一個ObjectStreamField組件 @serialField name type description @since 標記當引入一個特定的變化時 @since release @throws 和 @exception標簽一樣. The @throws tag has the same meaning as the @exception tag. {@value} 顯示常量的值,該常量必須是static屬性。 Displays the value of a constant, which must be a static field. @version 指定類的版本 @version info
-
Java代碼規範(基礎內容)
- 類、方法的註釋,要以javadoc的方式來寫。
- 非Java Doc的註釋,往往是給代碼的維護者看的,著重告述讀者為什麼這樣寫,如何修改,註意什麼問題等
- 使用tab操作,實現縮進,預設整體向右邊移動,時候用shift+tab整體向左移
- 運算符和=兩邊習慣性各加一個空格。比如:2+4*5+ 345 - 89
- 源文件使用utf-8編碼
- 行寬度不要超過80字元
- 代碼編寫次行風格和行尾風格
DOS命令(瞭解,不需要記)
-
DOS介紹
Dos: Disk Operating System磁碟操作系統,簡單說一下windows的目錄結構。[原理圖] -
相關的知識補充:相對路徑,絕對路徑
-
常用的dos命令
-
查看當前目錄是有什麼
dir dir d:\abc2\test200 -
切換到其他盤下:盤符號cd
案例演示:切換到c盤cd /D c: -
切換到當前盤的其他目錄下(使用相對路徑和絕對路徑演示)
案例演示:cd d:\abc2\test200 cd ..l..\abc2\ test200 -
切換到上一級:
案例演示:cd .. -
切換到根目錄:cd
案例演示:cd \ -
查看指定的目錄下所有的子級目錄tree E:\xxx\xxx
-
清屏cls[蒼老師]
-
退出DOS exit
-
說明:因為小伙伴後面使用dos非常少,所以對下麵的幾個指令,瞭解即可(md[創建目錄],rd[刪除目錄],copy[拷貝文件],del[刪除文件],echo[輸入內容到文件],type,move[剪切])
-
本章習題
- 編寫hello, world程式
- 將個人的基本信息((姓名、性別、籍貫、住址)列印到控制臺上輸出。各條信息分別占一行。
- JDK,JRE,JVM的關係
- 環境變數path配置及其作用
- Java編寫步驟
-
Java編寫7個規範
-
初學者java易犯錯誤
答案
//1
public class Hello{
public static void main(String[] args){
System.out.println("Hello,world");
}
}
//2
public class Hello{
public static void main(String[] args){
System.out.println("姓名\t性別\t籍貫\t住址");
}
}
//3
/*
JDK=JRE+JAVA開發工具
JRE=JVM+核心類庫
*/
//4-7 略