Java中JDK、JRE,JVM之間的關系

Java中的JDKJREJVM是三個核心概念,其關系可概括為JDK > JRE > JVM,具體如下:


一、定義與作用

  1. JDK(Java Development Kit)

    • 定義:Java開發工具包,用于開發和編譯Java程序。
    • 包含內容:JRE + 開發工具(如javac編譯器、jar打包工具、javadoc文檔生成工具等) + 基礎類庫。
    • 適用場景:開發者使用,需安裝JDK以編寫和調試代碼。
    • 示例:開發Java應用時,需通過javac.java文件編譯為.class字節碼文件148。
  2. JRE(Java Runtime Environment)

    • 定義:Java運行環境,用于執行已編譯的Java程序。
    • 包含內容:JVM + 核心類庫(如rt.jar,提供基本數據類型、線程、IO等支持)。
    • 適用場景:用戶運行Java程序時只需安裝JRE。
    • 示例:用戶雙擊.jar文件時,JRE中的java.exe會啟動JVM執行字節碼137。
  3. JVM(Java Virtual Machine)

    • 定義:Java虛擬機,負責將字節碼(.class文件)解釋或編譯為機器碼執行。
    • 核心功能:跨平臺支持(不同操作系統需安裝對應的JVM) + 內存管理(堆、棧等運行時數據區) + 垃圾回收。
    • 示例:同一份.class文件可在Windows、Linux的JVM上運行,無需重新編譯158。

二、三者關系

  1. 層級結構

    • JDK包含JRE和開發工具。
    • JRE包含JVM和核心類庫。
    • JVM是執行字節碼的核心,依賴JRE中的類庫支持148。

    圖解

    JDK = JRE + 開發工具(javac、jar等)  
    JRE = JVM + 核心類庫(rt.jar等)
    
  2. 功能區別

    • JDK vs JRE:JDK包含編譯工具(如javac),JRE僅用于運行程序。
    • JRE vs JVM:JVM需依賴JRE的類庫(如rt.jar)才能執行字節碼7814。
  3. 實際目錄驗證

    • JDK安裝目錄下存在jre子目錄,內含bin(JVM)和lib(核心類庫)。
    • 若僅安裝JRE,則目錄中無javac等開發工具357。

三、典型應用場景

  1. 開發階段:開發者需安裝JDK,利用javac編譯代碼并調試。
  2. 部署階段:用戶僅需JRE即可運行編譯后的程序(如.jar文件)。
  3. 跨平臺運行:JVM屏蔽操作系統差異,實現“一次編譯,到處運行”189。

四、總結

  • JDK是開發者的“工具箱”,JRE是程序的“運行舞臺”,JVM是跨平臺的“翻譯官”。
  • 三者的選擇:
    • 開發Java程序 → 安裝JDK
    • 運行Java程序 → 安裝JRE(或直接使用JDK自帶的JRE)。
    • 深入理解底層 → 研究JVM的內存模型和垃圾回收機制4814。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70455.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70455.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70455.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用C++ Qt實現安卓電池充電動效 | 打造工業級電量控件

一、為什么需要自定義電池控件? 在工業控制、車機系統、智能硬件等領域的UI開發中,電池狀態顯示是高頻出現的UI組件。通過實現一個支持顏色漸變、動態充電動畫、警戒閾值提示的電池控件,開發者可以系統掌握以下核心能力: Qt繪圖…

Django+Vue3全棧開發實戰:從零搭建博客系統

文章目錄 1. 開發環境準備2. 創建Django項目與配置3. 設計數據模型與API4. 使用DRF創建RESTful API5. 創建Vue3項目與配置6. 前端頁面開發與組件設計7. 前后端交互與Axios集成8. 項目優化與調試9. 部署上線10. 總結與擴展10.1 項目總結10.1.1 技術棧回顧10.1.2 項目亮點 10.2 擴…

Django 5實用指南(五)模板系統

Django5的模板系統是其核心功能之一,允許開發者將動態數據嵌入到HTML模板中,并根據不同的業務需求渲染頁面。Django模板系統基于 Django模板語言(DTL),它提供了一些強大的功能,如模板標簽、過濾器、條件語句…

uni-app開發app時 使用uni.chooseLocation遇到的問題

問題一:不顯示 問題二:選擇地址列表一直在加載中 因為 uni-app 接口文檔 中已經說明,使用騰訊的話需要開啟云服務,具體可看官網,這就是為什么使用時直接不顯示的原因,所以我使用的高德,但又出現…

推薦系統-排序模型

本次學習的重點是FM系列和WideNDeep系列。其實這兩個模型是存在因果關系的。從最初的LR模型開始,因為缺失高效的特征交互方式,產生了FM模型,即通過向量內積代替特征之間的兩兩交互的參數。最后DNN的引入可以建模更高階的特征。但是DNN如何與F…

體驗用ai做了個python小游戲

體驗用ai做了個python小游戲 寫在前面使用的工具2.增加功能1.要求增加視頻作為背景。2.我讓增加了一個歡迎頁面。3.我發現中文顯示有問題。4.我提出了背景修改意見,歡迎頁面和結束頁面背景是視頻,游戲頁面背景是靜態圖片。5.提出增加更多游戲元素。 總結…

c#爬取數據并解析json

安裝 Newtonsoft.Json Install-Package Newtonsoft.Json代碼 HttpClient client new HttpClient();// 獲取網頁內容HttpResponseMessage response client.GetAsync("https://opentdb.com/api.php?amount10&category18&difficultyeasy&typemultiple"…

計算機畢業設計Python農產品推薦系統 農產品爬蟲 農產品可視化 農產品大數據(源碼+LW文檔+PPT+講解)

溫馨提示:文末有 CSDN 平臺官方提供的學長聯系方式的名片! 溫馨提示:文末有 CSDN 平臺官方提供的學長聯系方式的名片! 溫馨提示:文末有 CSDN 平臺官方提供的學長聯系方式的名片! 作者簡介:Java領…

【分布式理論13】分布式存儲:數據存儲難題與解決之道

文章目錄 一、數據存儲面臨的問題二、RAID磁盤陣列的解決方案1. RAID概述2. RAID使用的技術3. RAID的代表性等級 三、分布式存儲的新思路1. 分布式存儲背景與特點2. 分布式存儲的組成要素 一、數據存儲面臨的問題 在單機系統時代,當數據量不斷增加、硬盤空間不夠時…

高德地圖android sdk(備忘)

依賴 // 權限請求框架:https://github.com/getActivity/XXPermissions implementation com.github.getActivity:XXPermissions:20.0 // https://mvnrepository.com/artifact/com.amap.api/navi-3dmap-location-search implementation com.amap.api:navi-3dmap-loca…

DeepSeek、微信、硅基流動、納米搜索、秘塔搜索……十種不同方法實現DeepSeek使用自由

為了讓大家實現 DeepSeek 使用自由,今天分享 10 個暢用 DeepSeek 的平臺。 一、官方滿血版:DeepSeek官網與APP 首推,肯定是 DeepSeek 的官網和 APP,可以使用滿血版 R1 和 V3 模型,以及聯網功能。 網址: htt…

自動化之ansible(二)

一、ansible中playbook(劇本) 官方文檔: Ansible playbooks — Ansible Community Documentation 1、playbook的基本結構 一個基本的playbook由以下幾個主要部分組成 hosts: 定義要執行任務的主機組或主機。 become: 是否需要使用超級用戶…

python 神經網絡教程,神經網絡模型代碼python,小白入門基礎教程

文章目錄 前言1. 神經網絡基礎概念1.1 神經元1.2 激活函數1.3 神經網絡結構1.4 安裝 Python1.5 選擇開發環境2. 使用numpy構建簡單神經網絡 3. 使用PyTorch構建復雜神經網絡 前言 本教程旨在為廣大初學者和有一定基礎的開發者提供一個系統、全面且深入的 Python 神經網絡學習指…

SOME/IP--協議英文原文講解10

前言 SOME/IP協議越來越多的用于汽車電子行業中,關于協議詳細完全的中文資料卻沒有,所以我將結合工作經驗并對照英文原版協議做一系列的文章。基本分三大塊: 1. SOME/IP協議講解 2. SOME/IP-SD協議講解 3. python/C舉例調試講解 4.2.2 Req…

Spring框架基本使用(Maven詳解)

前言: 當我們創建項目的時候,第一步少不了搭建環境的相關準備工作。 那么如果想讓我們的項目做起來方便快捷,應該引入更多的管理工具,幫我們管理。 Maven的出現幫我們大大解決了管理的難題!! Maven&#xf…

用大內存主機下載Visual Studio

用一臺內存達到128G的主機下載Visual Studio 2022,用的是公司網絡。下載速度讓我吃了一驚,沒人用網絡了?還是網站提速了?以前最大只能達到5MB/秒。記錄這段經歷,是用來分析公司網絡用的......

Ubuntu20.04.2安裝Vmware tools

軟件版本:Vmware Workstation Pro 17.6.2 操作系統鏡像文件:ubuntu-20.04.2-desktop-amd64 方式1:用iso鏡像安裝 沒用這種方法,太麻煩 方式2:用apt安裝Open VM Tools 如果你使用的是較新的Ubuntu版本(如…

Mac系統下使用Docker快速部署MaxKB:打造本地知識庫問答系統

隨著大語言模型的廣泛應用,知識庫問答系統逐漸成為提升工作效率和個人學習的有力工具。MaxKB是一款基于LLM(Large Language Model)大語言模型的知識庫問答系統,支持多模型對接、文檔上傳和自動爬取等功能。本文將詳細介紹如何在Ma…

2526考研資料分享 百度網盤

通過網盤分享的文件:01、2026【考研數學】 鏈接: https://pan.baidu.com/s/1N-TlXcCKMcX1U-KBr0Oejg?pwducbe 提取碼: ucbe 提取碼:98wg--來自百度網盤超級會員v3的分享 通過網盤分享的文件:01、2026【考研政治】 鏈接: https://pan.baidu.com/s/1N-T…

【信息系統項目管理師-案例真題】2013下半年案例分析答案和詳解

更多內容請見: 備考信息系統項目管理師-專欄介紹和目錄 文章目錄 試題一【問題? 1】(12 分)【問題? 2】(10 分)【問題 3】( 3 分 )試題二【問題? 1】(3? 分)【問題? 2】(10? 分)【問題? 3】(3? 分)【問題? 4】(9? 分)試題三【問題? 1】(12? 分)?【問題? 2】(8?…