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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...