Java 常見知識整理

寫在前面

此文記錄在工做學習中對於一些不明白的東西的記錄以及整理,但願能夠幫助到你java

正文開始

1、JDK、JRE、JVM

首先看看英文的全稱以及對應中文的翻譯是否是心中應該有個答案了spring

  • JAVA DEVELOPMENT KIT (JDK) Java 開發工具
  • JAVA RUNTIME ENVIRONMENT (JRE) Java 運行環境
  • JAVA VIRTUAL MACHINE (JVM) Java 虛擬機

來個圖理解一下三者之間的關係數據庫

image.png

簡單的來講apache

  • JDK 面向編寫Java的開發者
  • JRE 面向Java的程序
  • JVM 面向Java的字節碼

盜個圖 來個全家桶的合影json

image.png

2、Java SE、Java EE、Java ME

  • Java Standard Edition (Java SE) Java 標準版
  • Java Enterprise Edition (Java EE) Java 企業版
  • Java Mobile Edition (Java ME) Java 微型版

Java SE 用於開發和部署桌面、服務器以及嵌入設備和實時環境中的 Java 應用程序。Java SE 包括用於開發 Java Web 服務的類庫, 其優勢有編寫一次隨處運行、方便存取數據庫的 JDBC API、CORBA技術以及可以在 Internet 應用中保護數據的安全模式等等。tomcat

Java EE 是簡化企業解決方案的開發、部署和管理相關的複雜問題的體系結構。它繼承了 Java SE的衆多優勢,同時還提供了對 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技術的全面支持。其最終目的就是成爲一個可以使企業開發者大幅縮短投放市場時間的體系結構。安全

Java ME 爲在移動設備和嵌入式設備(好比手機、PDA、電視機頂盒和打印機)上運行的應用程序提供一個健壯且靈活的環境。Java ME 包括靈活的用戶界面、健壯的安全模型、許多內置的網絡協議以及對能夠動態下載的連網和離線應用程序的豐富支持。服務器

總結一下,Java SE 是標準版,包含標準的JVM和標準庫;而 Java EE 是企業版,它只是在 Java SE 的基礎上加上了大量的 API 和庫,以便方便開發Web應用、數據庫、消息服務等,Java EE 的應用使用的虛擬機和 Java SE 徹底相同。markdown

備註: Java5.0 版本後,J2SE、J2EE、J2ME分別改名爲Java SE、Java EE、Java ME,因爲習慣的緣由,咱們依然稱之爲J2SE、J2EE、J2ME。網絡

3、Maven中的 GroupID、ArtifactID 和 Version

一句話理解 GroupID 和 ArtifactID 方便惟必定位一個項目; 專業的理解 GroupID 和 ArtifactID 是項目的標識符(座標)是爲了保證項目惟一性;

GroupID 通常分爲多個段,第一段爲域,第二段爲公司名稱。域又分爲 org、com、cn 等等許多,其中org爲非營利組織,com爲商業組織。舉個apache公司的tomcat項目例子:這個項目的 GroupID 是 org.apache,它的域是org(由於tomcat是非營利項目),公司名稱是 Apache,ArtifactID 是 Tomcat。

GroupID 是項目組織惟一的標識符,實際對應Java的包的結構,是 main 目錄裏 java 的目錄結構。 ArtifactID 就是項目的惟一的標識符,實際對應項目的名稱,就是項目根目錄的名稱。

舉個例子:

<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<!-- 非盈利組織的springframework 推出 spring-core 版本爲 5.3.7-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>5.3.7</version>
</dependency>


<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<!-- 商業組織 阿里巴巴 推出 fastjson 版本爲 1.2.76-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.76</version>
</dependency>


<!-- 將來你的項目也能夠有相似的命名方式-->
<groupId>com.companyname.project-group</groupId>
<!-- 項目的惟一ID,一個groupId下面可能多個項目,就是靠artifactId來區分的 -->
<artifactId>project</artifactId>
<!-- 版本號 -->
<version>1.0</version>

複製代碼

總結

好記性 不如爛筆頭 這句從小就學習到的俗語,到今天我只記得這句話 對於爛筆頭也僅僅是停留在嘴上。 踐行這句話,真切的理解這句話。

參考資料

Java SE Documentation

相關文章
相關標籤/搜索