Java學習-第一部分-第一階段-第一節:Java概述

来源:https://www.cnblogs.com/wenjie2000/archive/2022/06/15/16378477.html
-Advertisement-
Play Games

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重要特點

  1. Java語言是面向對象的(oop)

  2. Java語言是健壯的。Java的強類型機制、異常處理、垃圾的自動收集等是Java程式健壯性的重要保證

  3. Java語言是跨平臺性的。 (即:一個編譯好的.class文件可以在多個系統下運行,這種特性稱為跨平臺)

  4. Java語言是解釋型的[瞭解]

    解釋性語言: javascript,PHP, java 編譯性語言:C/ C++
    區別是:解釋性語言,編譯後的代碼,不能直接被機器執行,需要解釋器來執行,編譯性語言,編譯後的代碼,可以直接被機器執行, c/c++

Java開發工具

  • editplus 、notepad++、notepad3(前期學習時使用)

  • Sublime Text(前期學習時使用)

    下載地址: https://www.sublimetext.com/

  • IDEA(實際開發中使用)

  • eclipse(實際開發中使用)

java運行機制

image

什麼是JDK、JRE

  • JDK基本介紹

    1. JDK的全稱(Java Development Kit Java開發工具包)

      JDK = JRE + java的開發工具[java, javac.javadoc,javap等]

    2. JDK是提供給Java開發人員使用的,其中包含了java的開發工具,也包括了JRE。所以安裝了JDK,就不用在單獨安裝JRE了。

  • JRE基本介紹

    1. JRE(Java Runtime Environment Java運行環境)

      JRE = JVM + Java的核心類庫[類]

    2. 包括Java虛擬機(JVM Java Virtual Machine)和Java程式所需的核心類庫等,如果想要運行一個開發好的Java程式,電腦中只需要安裝JRE即可。

JDK安裝與配置

略(網上有很多,學習建議安裝Java8)

Java快速入們

  • 需求說明

    要求開發一個Hello.java程式,可以輸出“hello,world!"

  • 開發步驟

    1. 將Java代碼編寫到擴展名為Hello.java的文件中。[代碼說明]
    2. 通過javac命令對該java文件進行編譯,生成.class文件。
    3. 通過java命令對生成的class文件進行運行。
  • 運行流程示意圖

image

第一個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開發註意事項和細節說明

  1. Java源文件以.java為擴展名。源文件的基本組成部分是類(class),如本類中的Hello
    類。

  2. Java應用程式的執行入口是main()方法。它有固定的書寫格式:public static void main(Stringl]args){...}

  3. Java語言嚴格區分大小寫。

  4. Java方法由一條條語句構成,每個語句以“;”結束。

  5. 大括弧都是成對出現的,缺一不可。[習慣,先寫爭再寫代碼]

  6. 一個源文件中最多只能有一個public類。其它類的個數不限。[演示]

//一個源文件中最多只能有一個public類。其它類的個數不限。[演示]//Dog是一個類
//編譯後,每一個類,都對於一個.class。(此文件編譯後會生成三個.class文件)
public class Hello{
  public static void main(String[] args){
      System.out.println("Hello world");
  }
}
class Dog{
}
class Tiger{
}
  1. 如果源文件包含一個public類,則文件名必須按該類名命名!

  2. 一個源文件中最多只能有一個public類。其它類的個數不限,也可以將main方法寫在非public類中,然後指定運行非public類,這樣入口方法就是非public的main方法

Java常用的轉義字元

  1. \t :一個製表位,實現對齊的功能
  2. \n:換行符
  3. \:一個\
  4. \”:一個"
  5. \':一個'
  6. \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易犯錯誤

  1. 找不到文件

    image

    解決方法:源文件名不存在或者寫錯,或者當前路徑錯誤

  2. 主類名和文件名不一致

    image

    解決方法:聲明為public的主類應與文件名一致,否知編譯失敗

  3. 缺少分號

    image

    解決方法:編譯失敗,註意錯誤出現的行數,再到源代碼中指定位置改錯。

註釋(comment)

  • 單行註釋:

    基本棓式

    格式: //註釋文字

  • 多行註釋:

    基本格式

    格式: /*註釋文字*/

  • 使用細節

    1. 被註釋的文字,不會被JVM (java虛擬機)解釋執行

    2. 多行註釋裡面不允許有多行註釋嵌套

  • 文檔註釋:
    註釋內容可以被JDK提供的工具javadoc所解析,生成一套以網頁文件形式體現的該程式的說明文檔,一般寫在類

    1. 基本格式

      /**
      *author 韓順平
      *@version 1.0
      *.....
      */
      
    2. 如何生成對應的文檔註釋
      javadoc -d 文件夾名 -xx -yy Demo3.java

    3. 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代碼規範(基礎內容)

  1. 類、方法的註釋,要以javadoc的方式來寫。
  2. 非Java Doc的註釋,往往是給代碼的維護者看的,著重告述讀者為什麼這樣寫,如何修改,註意什麼問題等
  3. 使用tab操作,實現縮進,預設整體向右邊移動,時候用shift+tab整體向左移
  4. 運算符和=兩邊習慣性各加一個空格。比如:2+4*5+ 345 - 89
  5. 源文件使用utf-8編碼
  6. 行寬度不要超過80字元
  7. 代碼編寫次行風格和行尾風格

DOS命令(瞭解,不需要記)

  • DOS介紹
    Dos: Disk Operating System磁碟操作系統,簡單說一下windows的目錄結構。[原理圖]

  • 相關的知識補充:相對路徑,絕對路徑

  • 常用的dos命令

    1. 查看當前目錄是有什麼
      dir dir d:\abc2\test200

    2. 切換到其他盤下:盤符號cd
      案例演示:切換到c盤cd /D c:

    3. 切換到當前盤的其他目錄下(使用相對路徑和絕對路徑演示)
      案例演示:cd d:\abc2\test200 cd ..l..\abc2\ test200

    4. 切換到上一級:
      案例演示:cd ..

    5. 切換到根目錄:cd
      案例演示:cd \

    6. 查看指定的目錄下所有的子級目錄tree E:\xxx\xxx

      image

    7. 清屏cls[蒼老師]

    8. 退出DOS exit

    9. 說明:因為小伙伴後面使用dos非常少,所以對下麵的幾個指令,瞭解即可(md[創建目錄],rd[刪除目錄],copy[拷貝文件],del[刪除文件],echo[輸入內容到文件],type,move[剪切])

本章習題

  1. 編寫hello, world程式
  2. 將個人的基本信息((姓名、性別、籍貫、住址)列印到控制臺上輸出。各條信息分別占一行。
  3. JDK,JRE,JVM的關係
  4. 環境變數path配置及其作用
  5. Java編寫步驟
  1. Java編寫7個規範

  2. 初學者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 略

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一個工作5年的粉絲找到我,他說參加美團面試,遇到一個基礎題沒回答上來。 這個問題是:“資料庫連接池有什麼用?以及它有哪些關鍵參數”? 我說,這個問題都不知道,那你項目裡面的連接池配置怎麼設置的? 你們猜他怎麼回答。懂得懂得啊。 好的,關於這個問題,我們來看看普通人和高手的回答。 普通人: 資料庫連接 ...
  • Principle of token bucket 隨著互聯網的發展,在處理流量的方法也不僅僅為 first-come,first-served,而在共用網路中實現流量管理的基本機制就是排隊。而公平演算法則是實現在優先順序隊列中基於哪些策略來排隊的”公平隊列“。Token Bucket 則是為公平排隊提 ...
  • 1. 指數增長模型 設第今年的人口為 \(x_0\),年增長率為 \(r\),預測 \(k\) 年後的人口為 \(x_k\),則有 \[ x_k = x_0(1+r)^k \tag{1} \] 這個模型的前提是年增長率 \(r\) 在 \(k\) 年內保持不變. 利用 (1) 式可以根據人口估計年增 ...
  • 日常開發中,我們都會用到線程池,一般會用execute()和submit()方法提交任務。但是當你用過CompletableFuture之後,就會發現以前的線程池處理任務有多難用,功能有多簡陋,CompletableFuture又是多麼簡潔優雅。 要知道CompletableFuture已經隨著Ja ...
  • 能夠理解服務監控三要素 能夠理解常用的APM系統優勢差異 能夠基於IDEA集成Skywalking Agent 能基於生產環境使用Skywalking Agent 掌握Rocketbot 性能分析 鏈路追蹤 儀錶盤應用 Webhook 1 Skywalking概述 隨著互聯網架構的擴張,分散式系統變 ...
  • 作者:永動的圖靈機 鏈接:https://juejin.cn/post/6844904033488994317 統一結果返回 目前的前後端開發大部分數據的傳輸格式都是json,因此定義一個統一規範的數據格式有利於前後端的交互與UI的展示。 統一結果的一般形式 是否響應成功; 響應狀態碼; 狀態碼描述 ...
  • 今天產品下了新需求,要給系統加雙語切換,在做到國家城市庫映射的時候,我在度娘上找了個雙語版的資料庫,可是系統已經在生產半年了,直接換表肯定是要背鍋的,轉念一想,要是能把城市信息直接替換為拼音不就行了,在此將操作步驟整理下來。 首先需要安裝一下擴展overtrue/pinyin,執行命令,我的框架是6 ...
  • 函數中參數傳值 1、基本數據類型傳值 當函數中傳入的參數為基本數據類型時,函數中對傳入參數的操作不會對函數外的數據產生影響。由於基本數據類型的變數名指向的是具體的數值,在函數內部,相當於將參數進行了拷貝,函數內只對拷貝後的參數進行操作。 基本數據類型 public class ParamsTrans ...
一周排行
    -Advertisement-
    Play Games
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...