JDK
一,介紹
JDK(Java Development Kit)是Java開發(fā)工具包,它提供了開發(fā)和運行Java應(yīng)用程序所需的工具、庫和資源。下面是JDK的一些重點介紹:
- Java編譯器(javac):JDK包含了Java編譯器,可以將Java源代碼編譯為Java字節(jié)碼。通過編譯器,開發(fā)人員可以將Java源代碼轉(zhuǎn)換為可在JVM上運行的字節(jié)碼文件。
- 核心類庫(Core Libraries):JDK提供了豐富的核心類庫,其中包含了常用的類和接口,用于處理字符串、集合、IO、網(wǎng)絡(luò)通信等各種操作。開發(fā)人員可以利用這些類庫來構(gòu)建功能豐富的Java應(yīng)用程序。
- 調(diào)試工具(Debugging Tools):JDK提供了一系列的調(diào)試工具,例如Java命令行調(diào)試器(jdb)、Java虛擬機調(diào)試接口(JVMTI)和Java VisualVM等。這些工具可以幫助開發(fā)人員查找和修復Java應(yīng)用程序中的錯誤和異常。
- 打包工具(Packaging Tools):JDK提供了用于打包和部署Java應(yīng)用程序的工具,如Java歸檔工具(jar)和Java Web啟動器(Java Web Start)。這些工具使得開發(fā)人員能夠方便地將應(yīng)用程序打包成可執(zhí)行的JAR文件或部署到Web服務(wù)器上。
- 文檔生成工具(Documentation Generation Tools):JDK包含了Java文檔工具(javadoc),可以根據(jù)源代碼中的注釋自動生成詳細的API文檔。這使得開發(fā)人員可以方便地生成和瀏覽代碼文檔。
- Java虛擬機(JVM):JDK中包含了Java虛擬機,它是執(zhí)行Java字節(jié)碼的運行時環(huán)境。JVM負責將字節(jié)碼轉(zhuǎn)換為機器碼并執(zhí)行,提供了內(nèi)存管理、垃圾回收等關(guān)鍵功能。
- 開發(fā)工具(Development Tools):JDK還提供了一系列的開發(fā)工具,如編譯器插件(javacpl)、應(yīng)用程序監(jiān)視器(jconsole)和Java控制面板(jcontrol)。這些工具可以幫助開發(fā)人員進行代碼編譯、調(diào)試、性能分析等操作。
以上是JDK的一些重點介紹,它們?yōu)镴ava開發(fā)人員提供了豐富的功能和工具,使得他們能夠輕松地開發(fā)、調(diào)試和部署Java應(yīng)用程序。同時,JDK也會隨著Java的版本升級而提供新的功能和改進。
二,JDK組成部分
JDK(Java Development Kit)由以下幾個主要組成部分組成:
- Java編譯器(javac):Java編譯器是JDK中的一個重要組件,它可以將Java源代碼編譯為Java字節(jié)碼。編譯器負責將程序員編寫的Java源代碼轉(zhuǎn)換為可在Java虛擬機上運行的字節(jié)碼文件。
- JRE(Java Runtime Environment):JDK中包含了完整的JRE,JRE是Java應(yīng)用程序運行所需的最小環(huán)境。它包含了Java虛擬機(JVM),以及執(zhí)行Java程序所需的核心類庫和運行時資源。
- 核心類庫(Core Libraries):JDK提供了豐富的核心類庫,這些類庫用于處理各種常見的任務(wù),如字符串操作、集合操作、文件IO、網(wǎng)絡(luò)通信等。開發(fā)人員可以利用這些類庫來構(gòu)建功能強大的Java應(yīng)用程序。
- 開發(fā)工具(Development Tools):JDK中包含一系列的開發(fā)工具,用于加速Java應(yīng)用程序的開發(fā)。其中包括了Java編譯器(javac)、調(diào)試工具(jdb)、性能分析工具(jconsole)等。這些工具能夠幫助開發(fā)人員編譯、調(diào)試和分析Java代碼。
- Java文檔工具(javadoc):JDK提供了Java文檔工具,它可以根據(jù)源代碼中的注釋生成詳細的API文檔。開發(fā)人員可以使用該工具自動生成和維護Java代碼的文檔,以方便其他開發(fā)人員使用和理解。
- 示例代碼和示例文檔:JDK中還包含了豐富的示例代碼和示例文檔,這些示例可以幫助開發(fā)人員更好地理解和學習Java編程。示例代碼涵蓋了各種Java特性和功能的使用方法,可以作為開發(fā)人員的參考和學習材料。
這些組成部分共同構(gòu)成了JDK,為Java開發(fā)人員提供了一個完整的開發(fā)環(huán)境和豐富的工具集,用于開發(fā)、調(diào)試和部署Java應(yīng)用程序。
三,JDK,JRE,JVM的區(qū)別
JDK(Java Development Kit),JRE(Java Runtime Environment)和JVM(Java Virtual Machine)是 Java 平臺的三個關(guān)鍵組成部分,它們在功能和作用上有所不同:
- JDK(Java Development Kit):
JDK是完整的 Java 開發(fā)工具包,它包含了用于開發(fā) Java 應(yīng)用程序的各種工具、編譯器、示例代碼和文檔。JDK提供了一個完整的開發(fā)環(huán)境,使開發(fā)人員能夠編寫、編譯和調(diào)試 Java 應(yīng)用程序。它還包括了 JRE 的所有內(nèi)容。通常情況下,只有當你需要開發(fā) Java 應(yīng)用程序時才需要安裝 JDK。
- JRE(Java Runtime Environment):
JRE是運行 Java 應(yīng)用程序所需的最小環(huán)境。它包含了 JVM 和 Java 核心類庫(Core Libraries),這些類庫提供了 Java 應(yīng)用程序運行所需的基本功能和資源。如果只需運行 Java 應(yīng)用程序而無需進行開發(fā),則只需安裝 JRE。JRE允許用戶在計算機上運行已編譯的 Java 程序。
- JVM(Java Virtual Machine):
JVM 是 Java 虛擬機,它是 Java 平臺的核心組件之一。JVM 在計算機上執(zhí)行 Java 字節(jié)碼,并提供了內(nèi)存管理、垃圾回收、安全性等重要功能。JVM 是 Java 應(yīng)用程序與底層操作系統(tǒng)之間的中間層,使得 Java 應(yīng)用程序具有跨平臺的能力。不同的操作系統(tǒng)需要特定版本的 JVM 來運行 Java 應(yīng)用程序。
簡而言之,JDK 是用于開發(fā) Java 應(yīng)用程序的工具包,其中包含了 JRE;而 JRE 是運行 Java 應(yīng)用程序所需的最小環(huán)境;JVM 則是在計算機上執(zhí)行 Java 字節(jié)碼的虛擬機,它提供了運行 Java 程序的基礎(chǔ)設(shè)施。
四,JVM介紹
JVM(Java虛擬機)是Java程序的運行環(huán)境,它包含了多個關(guān)鍵模塊,其中包括垃圾收集器(GC)、類加載器、編譯器、內(nèi)存模型、性能調(diào)優(yōu)和執(zhí)行模式。下面重點介紹這六個模塊:
- 垃圾收集器(Garbage Collector):JVM的垃圾收集器負責自動管理內(nèi)存回收。它會自動檢測不再使用的對象并進行回收,以確保內(nèi)存的有效利用。不同的垃圾收集器采用不同的算法和策略來進行垃圾回收,如標記-清除算法、復制算法、標記-整理算法等。
- 類加載器(Class Loader):類加載器負責將編寫的Java類加載到JVM中,并進行鏈接和初始化。它按照一定的規(guī)則查找和加載類文件,并生成對應(yīng)的Class對象。類加載器支持類的動態(tài)加載和熱部署,使得Java具有良好的擴展性和靈活性。
- 編譯器(Compiler):JVM的編譯器將Java源代碼轉(zhuǎn)換為可執(zhí)行的字節(jié)碼。編譯器通常包括即時編譯器(JIT Compiler)和解釋器(Interpreter)。即時編譯器將頻繁執(zhí)行的字節(jié)碼編譯為本地機器碼,以提高程序的執(zhí)行效率。解釋器逐行解釋執(zhí)行字節(jié)碼。
- 內(nèi)存模型(Memory Model):JVM的內(nèi)存模型定義了多線程環(huán)境下的內(nèi)存訪問規(guī)則和內(nèi)存可見性。它規(guī)定了共享變量的操作具有原子性、可見性和有序性。內(nèi)存模型為多線程編程提供了一致的內(nèi)存訪問抽象,保證了程序的正確性。
- 性能調(diào)優(yōu)(Performance Tuning):JVM的性能調(diào)優(yōu)是指通過調(diào)整JVM的配置參數(shù)和優(yōu)化程序代碼來提升Java應(yīng)用的性能。性能調(diào)優(yōu)涉及到垃圾收集器的選擇、堆內(nèi)存和棧內(nèi)存的大小配置、線程池的優(yōu)化、程序的并發(fā)設(shè)計等方面。合理的性能調(diào)優(yōu)可以提高程序的響應(yīng)速度和吞吐量。
- 執(zhí)行模式(Execution Mode):JVM的執(zhí)行模式指的是JVM運行時的執(zhí)行方式。常見的執(zhí)行模式包括客戶端模式(Client Mode)和服務(wù)器模式(Server Mode)??蛻舳四J竭m用于交互式應(yīng)用和快速啟動,而服務(wù)器模式適用于長時間運行的服務(wù)端應(yīng)用,它會進行更多的優(yōu)化和激進的即時編譯。
這六個模塊是JVM中的重要組成部分,對于理解和優(yōu)化Java程序的執(zhí)行至關(guān)重要。通過合理配置和優(yōu)化這些模塊,可以提高Java應(yīng)用程序的性能和可靠性。
JVM詳細介紹
類加載器
JVM(Java Virtual Machine)的類加載器(Class Loader)是負責將 Java 類加載到 JVM 中的組件。它的主要功能是在運行時動態(tài)加載 Java 類并將其轉(zhuǎn)換為可以被 JVM 執(zhí)行的字節(jié)碼。
下面是對 JVM 的類加載器的重點介紹:
- 類加載器的層次結(jié)構(gòu):
JVM 的類加載器采用了層次結(jié)構(gòu),由多個類加載器組成。它們按照特定的順序逐級加載類。常見的三個層次結(jié)構(gòu)是:
-
- 啟動類加載器(Bootstrap Class Loader):它是 JVM 的一部分,它是最頂層的類加載器,負責加載 Java 核心類庫(如java.lang包下的類)。
- 擴展類加載器(Extension Class Loader):它負責加載 Java 的擴展類庫(如javax包下的類)。
- 應(yīng)用程序類加載器(Application Class Loader):也稱為系統(tǒng)類加載器,它負責加載應(yīng)用程序中的類。
- 雙親委派模型:
雙親委派(Delegation Model)是一種類加載器的工作機制,也是 Java 類加載機制的核心之一。在雙親委派模型中類加載器遵循雙親委派模型。當加載一個類時,首先會委托給父級類加載器(除了啟動類加載器)嘗試加載。如果父級加載器無法找到該類,則會將加載請求傳遞給當前類加載器進行加載。這樣可以確保類的加載是一種層次結(jié)構(gòu),避免類的重復加載和沖突。
- 破壞雙親委派模型(覆蓋加載):
盡管類加載器遵循雙親委派模型,但有時需要破壞該模型,實現(xiàn)一些特殊的需求。這可以通過自定義類加載器來實現(xiàn)。自定義類加載器可以重寫父級加載器的加載邏輯,并在特定情況下覆蓋加載類。
- 動態(tài)類加載:
類加載器允許在運行時動態(tài)加載類,這提供了一些動態(tài)性和靈活性。例如,通過使用反射機制,可以在運行時根據(jù)條件加載特定的類。
- 類加載過程:
類加載器通過以下步驟加載類:
-
- 加載:查找并加載類的字節(jié)碼文件。
- 鏈接:執(zhí)行驗證、準備和解析等操作。
- 初始化:對類進行初始化,包括執(zhí)行靜態(tài)變量賦值、執(zhí)行靜態(tài)代碼塊等。
類加載器是 JVM 實現(xiàn)的關(guān)鍵組件之一,它管理著 Java 類的加載和鏈接過程。了解類加載器的工作原理和層次結(jié)構(gòu)可以幫助我們更好地理解 Java 類加載的機制以及動態(tài)加載類的能力。
GC
垃圾收集(Garbage Collection,GC)是Java虛擬機(JVM)的一項重要功能,用于自動管理和回收不再使用的內(nèi)存對象,以避免內(nèi)存泄漏和提高內(nèi)存的利用效率。以下是GC的重點介紹:
- 垃圾收集算法:垃圾收集器使用不同的算法來確定哪些對象可以被回收。常見的算法包括標記-清除算法、復制算法、標記-整理算法和分代收集算法等。這些算法根據(jù)對象的存活周期和內(nèi)存布局選擇最合適的方式進行垃圾回收。
- 內(nèi)存區(qū)域劃分:GC將內(nèi)存劃分為不同的區(qū)域,如新生代、老年代、永久代/元空間等。每個區(qū)域有不同的特點和垃圾收集策略。新生代通常采用復制算法,老年代采用標記-清除或標記-整理算法。
永久代和元空間是兩個不同的概念,它們在不同的Java版本中扮演著不同的角色,并使用不同的垃圾收集算法。
- 永久代(Permanent Generation):永久代是Java 8及之前版本中的一部分,用于存儲類的元數(shù)據(jù)、常量池、靜態(tài)變量以及即時編譯器(JIT)優(yōu)化后的代碼等。在永久代中,一些不再使用的類或常量可能會被回收,但并不是通過垃圾收集器來實現(xiàn)的。永久代采用的不是傳統(tǒng)的垃圾收集算法,而是通過特定的規(guī)則和機制來處理。
- 元空間(Metaspace):元空間是從Java 8開始取代了永久代的概念。它的主要作用是存儲類的元數(shù)據(jù),如類的結(jié)構(gòu)信息、方法信息等。與永久代不同,元空間并不是在堆中進行分配,而是使用本地內(nèi)存。元空間不再受到固定大小的限制,它可以根據(jù)需要動態(tài)地分配和釋放內(nèi)存。
由于永久代和元空間的特殊性,它們并不使用傳統(tǒng)的標記-清除或標記-整理算法。在永久代中,類的卸載是通過特定規(guī)則來判定的,而元空間中的類的釋放是由底層操作系統(tǒng)自行管理的。
需要注意的是,隨著Java的發(fā)展,JDK 8以后的版本已經(jīng)將永久代替換為了元空間,因此永久代僅適用于Java 8及之前的版本。在Java 8之后,類的元數(shù)據(jù)存儲在元空間中,并且使用不同的機制進行管理。
- 垃圾回收過程:在垃圾回收過程中,GC需要進行對象的標記、可達性分析、回收等操作。其中,標記階段用于標記所有活躍對象,分析階段用于確定哪些對象是不可達的,回收階段則釋放不可達對象所占用的內(nèi)存。
- 垃圾收集器:JVM提供了多個垃圾收集器,如Serial、Parallel、CMS、G1等。不同的垃圾收集器具有不同的特點和適用場景。選擇合適的垃圾收集器可以根據(jù)應(yīng)用程序的需求來平衡吞吐量、延遲和內(nèi)存占用。
- 垃圾回收的影響:垃圾收集過程會導致一定的系統(tǒng)開銷。在進行垃圾回收時,應(yīng)用程序的執(zhí)行會被暫停,可能會影響系統(tǒng)的響應(yīng)性能和吞吐量。因此,需要根據(jù)應(yīng)用程序的特點和需求進行合理配置和調(diào)優(yōu)。
- GC調(diào)優(yōu):GC調(diào)優(yōu)是優(yōu)化應(yīng)用程序性能的重要環(huán)節(jié)。通過調(diào)整GC相關(guān)的參數(shù),如堆大小、垃圾收集器類型、分代比例等,可以優(yōu)化內(nèi)存使用和垃圾回收效率。常見的調(diào)優(yōu)手段包括分析GC日志、選擇合適的垃圾收集器、設(shè)置合理的堆大小等。
GC是Java虛擬機的關(guān)鍵部分,對于保證程序的穩(wěn)定性和性能至關(guān)重要。了解垃圾收集算法、內(nèi)存區(qū)域劃分、垃圾回收過程、垃圾收集器選擇和調(diào)優(yōu)等方面的知識,能夠幫助開發(fā)人員編寫高效、具有良好響應(yīng)性的Java應(yīng)用程序。
內(nèi)存模型
內(nèi)存模型是計算機系統(tǒng)在執(zhí)行程序時,對內(nèi)存進行組織和管理的規(guī)范。Java的內(nèi)存模型主要包括堆、棧、方法區(qū)、本地方法棧和計數(shù)器等組成部分。
- 堆(Heap):堆是Java中最大的一塊內(nèi)存區(qū)域,用于存儲對象實例和數(shù)組。所有通過關(guān)鍵字
new創(chuàng)建的對象都會被分配到堆上。堆是線程共享的,所有線程都可以訪問和修改堆中的對象。
- 棧(Stack):棧是線程私有的,用于存儲方法的局部變量、方法的參數(shù)值、返回值和方法調(diào)用的相關(guān)信息。每個線程在運行時都會有一個獨立的棧,棧的大小和生命周期與線程的生命周期相同。棧是一種高效的數(shù)據(jù)結(jié)構(gòu),它以"先進后出"(LIFO)的方式管理數(shù)據(jù)。
- 方法區(qū)(Method Area):方法區(qū)是存儲已加載的類信息、常量、靜態(tài)變量、編譯器優(yōu)化后的代碼等的內(nèi)存區(qū)域。在Java 8及之前的版本中,方法區(qū)被稱為永久代(Permanent Generation)。而在Java 8及之后的版本中,永久代被移除,取而代之的是元空間(Metaspace)。
- 本地方法棧(Native Method Stack):本地方法棧用于存儲Java程序調(diào)用本地(非Java)方法的相關(guān)信息。本地方法棧與棧的功能類似,但專門用于處理本地方法的調(diào)用和返回。
- 計數(shù)器(Program Counter):計數(shù)器是線程私有的,用于記錄當前線程正在執(zhí)行的字節(jié)碼指令的地址。每個線程都有一個獨立的計數(shù)器,它不存儲任何數(shù)據(jù),僅用于指示下一條要執(zhí)行的指令。
這些組成部分共同構(gòu)成了Java程序在內(nèi)存中的存儲和執(zhí)行結(jié)構(gòu)。了解這些內(nèi)存模型的重要組成部分有助于理解Java程序的運行機制,進行有效的內(nèi)存管理和性能優(yōu)化。
編譯器
內(nèi)存模型中的編譯器在Java程序的執(zhí)行過程中起著重要的作用。編譯器負責將Java源代碼翻譯成可執(zhí)行的字節(jié)碼指令,以便在Java虛擬機中執(zhí)行。
以下是編譯器在Java內(nèi)存模型中的一些重要作用和特性:
- 語法分析:編譯器會對源代碼進行語法分析,確保其符合Java語法規(guī)范。它會檢查語法錯誤、缺失的分號、括號匹配等問題。
- 語義分析:編譯器會進行語義分析,包括類型檢查、變量聲明和使用的合法性等。它會檢查變量的作用域、類型轉(zhuǎn)換、方法的調(diào)用等問題,以確保代碼的正確性。
- 優(yōu)化:編譯器會進行各種優(yōu)化,以提高程序的性能和效率。常見的優(yōu)化包括常量折疊、逃逸分析、循環(huán)展開、方法內(nèi)聯(lián)、無用代碼刪除等。這些優(yōu)化可以減少程序的執(zhí)行時間和內(nèi)存占用。
- 字節(jié)碼生成:編譯器將經(jīng)過語法和語義分析后的代碼翻譯成字節(jié)碼指令。字節(jié)碼是一種中間形式的代碼,它是跨平臺的,可以在不同的Java虛擬機上執(zhí)行。
- 即時編譯:在某些情況下,編譯器可以將熱點代碼(被頻繁執(zhí)行的代碼)進行即時編譯。即時編譯器會將字節(jié)碼轉(zhuǎn)換成本地機器代碼,以提高執(zhí)行速度。
編譯器在Java內(nèi)存模型中扮演著至關(guān)重要的角色。它負責將高級語言的Java代碼轉(zhuǎn)化為可執(zhí)行的字節(jié)碼指令,并進行各種優(yōu)化以提高程序的性能。了解編譯器的作用和特性有助于我們理解Java程序的執(zhí)行過程和優(yōu)化技巧。
執(zhí)行模式
在Java虛擬機中,執(zhí)行模式分為解釋模式、編譯模式和混合模式三種。它們分別是:
- 解釋模式(Interpret Mode):Java虛擬機最初的執(zhí)行方式是解釋模式,即將Java字節(jié)碼逐條解釋成機器指令并執(zhí)行。解釋模式的缺點是效率低下,因為每次執(zhí)行都需要進行逐條解釋,速度比較慢。
- 編譯模式(Compile Mode):為了提高程序的性能,Java虛擬機引入了編譯模式。編譯模式是在運行時將Java字節(jié)碼編譯成本地機器代碼,以提高程序的執(zhí)行速度。編譯模式包括以下兩種實現(xiàn)方式:
a. 即時編譯器(Just-In-Time Compiler,JIT):即時編譯器(編譯器)會對代碼進行實時編譯,并將其轉(zhuǎn)換為本地機器代碼。這種編譯方式可以提高程序的執(zhí)行速度,但也會占用一定的內(nèi)存資源。
b. 提前編譯器(Ahead-Of-Time Compiler,AOT):提前編譯器可以事先將Java字節(jié)碼編譯成本地機器代碼,生成可執(zhí)行二進制文件。這種方式可以避免運行時編譯的開銷,提高程序的啟動速度和執(zhí)行速度,但也會占用更多的磁盤空間。
- 混合模式(Mixed Mode):混合模式是將解釋模式和編譯模式相結(jié)合的一種執(zhí)行模式。它在程序啟動時使用解釋模式,預(yù)先編譯部分代碼;在程序運行過程中,通過即時編譯器將熱點代碼編譯成本地機器代碼,并利用混合執(zhí)行模式來提高程序的執(zhí)行效率。
Java虛擬機的執(zhí)行模式既包含了解釋模式和編譯模式的優(yōu)缺點,也有一些創(chuàng)新的混合模式。在實際應(yīng)用中,可以根據(jù)具體的需求和場景選擇合適的執(zhí)行模式,以達到最好的性能或者最小的開銷。 Java1.8默認混合模式,jdk某一個文件txt有明確描述
Java 代碼執(zhí)行全過程
Java代碼的執(zhí)行過程可以簡單分為以下幾個步驟:文章來源:http://www.zghlxwxcb.cn/news/detail-841575.html
- 編寫源代碼:程序員使用Java編程語言編寫源代碼,源代碼是以.java文件格式保存的文本文件。
- 編譯源代碼:使用Java編譯器(javac)將源代碼編譯成字節(jié)碼文件。字節(jié)碼是一種中間形式的代碼,它不是直接在操作系統(tǒng)上運行的機器代碼,而是供Java虛擬機執(zhí)行的指令集。
- 類加載:Java虛擬機(JVM)在運行時負責類的加載。當Java程序啟動時,JVM會根據(jù)需要加載字節(jié)碼文件,并且將字節(jié)碼轉(zhuǎn)換成可以直接在JVM上執(zhí)行的二進制形式。
- 字節(jié)碼驗證:在類加載的過程中,JVM會進行字節(jié)碼驗證,以確保字節(jié)碼的安全性和正確性。這個過程包括類型檢查、訪問權(quán)限驗證等,以防止?jié)撛诘陌踩┒春湾e誤。
- 解釋/編譯執(zhí)行:Java虛擬機根據(jù)需要選擇不同的執(zhí)行模式,可以是解釋模式、即時編譯模式或混合模式。在解釋模式下,JVM逐條解釋字節(jié)碼并執(zhí)行;在即時編譯模式下,JVM將熱點代碼編譯成本地機器代碼,以提高執(zhí)行速度;在混合模式下,JVM結(jié)合使用解釋和編譯執(zhí)行。
- 運行時內(nèi)存管理:Java虛擬機負責分配和管理程序運行時需要的內(nèi)存。它提供了自動的垃圾回收機制,以釋放不再使用的內(nèi)存資源,并且通過堆、棧等數(shù)據(jù)結(jié)構(gòu)來管理對象的創(chuàng)建和銷毀。
- 程序終止:當程序執(zhí)行完畢或者出現(xiàn)異常時,Java虛擬機會終止程序的執(zhí)行。在程序終止之前,可以執(zhí)行一些清理工作,例如關(guān)閉打開的文件、釋放占用的資源等。
總體而言,Java代碼的執(zhí)行過程包括編寫源代碼、編譯、類加載、字節(jié)碼驗證、解釋/編譯執(zhí)行和運行時內(nèi)存管理等步驟。Java虛擬機提供了一個平臺獨立的運行環(huán)境,使得Java程序可以在不同的操作系統(tǒng)上執(zhí)行,具有良好的可移植性和安全性。文章來源地址http://www.zghlxwxcb.cn/news/detail-841575.html
到了這里,關(guān)于一篇文章帶你了解什么是JDK的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!