Java、JDK、JRE、JVM

Java、JDK、JRE、JVM

一、 Java

廣義上看,Kotlin、JRuby等運行于Java虛擬機上的編程語言以及相關的程序都屬于Java體系的一員。從傳統意義上看,Java社區規定的Java技術體系包括以下幾個部分:

  • Java程序設計語言
  • 各種硬件平臺上的Java虛擬機實現
  • Class文件格式
  • Java類庫API
  • 來自商業機構以及開源社區的第三方Java類庫

Java技術體系

二、 JDK

JDK(Java Development Kit),Java開發工具包,是支持Java程序開發的最小環境。它提供了JRE、類庫和編譯器、調試器等開發工具,以支持Java開發人員創建和構建各種類型的程序。

三、 JRE

JRE(Java Runtime Environment),Java運行時環境,是支持Java程序運行的標準環境。它包括JVM和Java類庫,用于解釋和執行Java字節碼,并提供了運行Java應用程序所需的基本功能。

四、 JVM

JVM(Java Virtual Machine),Java虛擬機,是Java程序運行的核心組件之一。JVM是一個用于解釋和執行Java字節碼的虛擬計算機,它提供了運行Java程序的環境。

JDK、JRE、JVM關系

程序員使用JDK開發Java程序,Java程序最終在JRE中的JVM上運行。

五、 Java,編譯型?解釋型?

  • 編譯型語言:把源程序編譯成二進制代碼的可執行程序然后運行這個程序,如C、C++。編譯型語言執行速度快、效率高,但依靠編譯器、跨平臺性差些。

  • 解釋型語言:源程序翻譯一句執行一句,如Python、JavaScript。解釋型語言執行速度慢、效率低,但依靠解釋器、跨平臺性好。

Java既不屬于傳統的編譯型語言,也不屬于解釋型語言,Java是先將代碼編譯成字節碼文件(“.class”文件),然后再利用JVM對字節碼進行解釋執行,所以Java即可以說成編譯型,也可以說成解釋型。另外,Java是一種動態語言,可以在程序運行時安全地修改它,這對于無法承受任何停機時間的網絡應用程序來說尤其重要。

Java提出了“一次編譯,到處運行”的口號,這個特性便是通過字節碼以及JVM實現的。Java經過編譯后的字節碼由JVM解釋執行,無論硬件配置如何,JVM的設計都遵循統一的規范。因此,Java在編寫時不需要考慮不同架構CPU之間的差異,這為Java的可移植性、跨平臺性提供了極大地便利。比如,對于C語言,在不同硬件平臺上,int類型的變量可表示的范圍不同。但由于JVM的存在,硬件平臺的差異對于Java是不可見的,Java只需要知道JVM中int類型變量的表示范圍即可。

JVM隱藏了不同硬件平臺之間的差異

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

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

相關文章

vue的知識點

Vue.js是一個漸進式JavaScript框架,用于簡化Web應用程序開發和管理。下面是Vue.js的一些核心知識點: 1. 數據綁定:Vue.js通過指令和模板語法實現了雙向數據綁定,可以實時更新視圖和模型之間的數據。 2. 組件化開發:V…

【力扣】移除鏈表元素203

目錄 1.前言2. 題目描述3. 題目分析3.1 不帶哨兵位3.2 帶哨兵位 4. 附代碼4.1 不帶哨兵位4.2 帶哨兵位 1.前言 這里開始介紹從網上一些刷題網站上的題目,在這里做一些分享,和學習記錄。 先來介紹一些力扣的OJ題目。 這里的OJ就是我們不需要寫主函數&…

數據表記錄的操作

一、數據添加 1、打開SSMS,附加數據庫(數據庫文件在自己的文件夾下面),并進行下面的設置: (1)設置“部門信息”表中的“編號”為主鍵(SSMS) 首先建立好所需的數據庫庫…

華為OD機試 - 生成哈夫曼樹(Java JS Python C)

題目描述 給定長度為 n 的無序的數字數組,每個數字代表二叉樹的葉子節點的權值,數字數組的值均大于等于1。 請完成一個函數,根據輸入的數字數組,生成哈夫曼樹,并將哈夫曼樹按照中序遍歷輸出。 為了保證輸出的二叉樹中序遍歷結果統一,增加以下限制: 二叉樹節點中,左節…

java中什么是線程池?

線程池(Thread Pool)是一種線程管理的機制,它主要解決了線程生命周期的開銷和資源消耗問題。線程池在程序中創建一些預先定義數量的線程,將任務分配給這些線程,從而提高了線程的重用性和性能。線程池的核心思想是將創建…

為 Compose MultiPlatform 添加 C/C++ 支持(3):實戰 Desktop、Android、iOS 調用同一個 C/C++ 代碼

theme: serene-rose 前言 在本系列的前兩篇文章中我們已經學會了如何在 kotlin native 平臺(iOS)使用 cinterop 調用 C/C 代碼。以及在 jvm 平臺(Android、Desktop)使用 jni 調用 C/C 代碼,并且知道了如何自動編譯 A…

Git 五分鐘教程速度入門

Git 五分鐘教程速度入門 分類 編程技術 許多人認為 Git 太混亂,或認為它是一種復雜的版本控制系統,其實不然,這篇文章有助于大家快速上手使用 Git。 入門 使用Git前,需要先建立一個倉庫(repository)。您可以使用一個已經存在的…

Win10操作系統安裝Python

1 Python解釋器下載 1.1 安裝環境 Windows 10 專業工作站版22H2 python-3.9.6-amd64.exe 1.2 下載地址 Python官網:Welcome to Python.org Python鏡像:CNPM Binaries Mirror 2 Python解釋器安裝 2.1 Install Python 3.9.6 (64-bit)界面 雙擊運行下…

鴻蒙開發組件之list

1、鴻蒙中的list作為可滑動列表功能,初始化方式是 List({space: 10}){ForEach(arr, item > {ListItem() {//列表單個Item組件}})} 其中,List中的space可以設置兩個ListItem組件的間距 List中是一個ForEach,需要注意的是item要返回的是L…

【數據結構】面試OJ題———棧|隊列|互相實現|循環隊列|括號匹配

目錄 1. 有效的括號 思路: 2.用隊列實現棧 思路: 3.用棧實現隊列 思路: 4.設計循環隊列 思路: 1. 有效的括號 20. 有效的括號 - 力扣(LeetCode) 給定一個只包括 (,),{&…

Hive SQL間隔連續問題

問題引入 下面是某游戲公司記錄的用戶每日登錄數據, 計算每個用戶最大的連續登錄天數,定義連續登錄時可以間隔一天。舉例:如果一個用戶在 1,3,5,6,9 登錄了游戲,則視為連續 6 天登錄。 id dt1001 2021-12-121002 2021-12-12…

visual studio code 好用的插件

vscode-icons Better comments 該插件對不同類型的注釋會附加了不同的顏色,更加方便區分,幫助我們在代碼中創建更人性化的注釋。 Error Lens Error Lens插件是一款可以檢測你編寫的代碼的語法錯誤,并且會顯示出對語法錯誤的診斷信息…

USB的高速速率是如何確定的?

從全局說起。先說host對dev的插入檢測。由于dev插入到host,導致為0的D和D-線突然有了電平變化,有且只有一根線的電平會變。在高速和全速模式下,D線會被拉高;在低速模式下D-線會被拉高。同時,host會對插入的dev進行消抖…

RCNN 學習

RCNN算法流程 RCNN算法流程可分為4個步驟 一張圖像生成1K~2K個候選區域(使用Selective Search方法)對每個候選區域,使用深度網絡圖特征特征送入每一類的SVM分類器,判別是否屬于該類使用回歸期器細修正候選框位置 1.候選區域的生…

【星海隨筆】Prometheus(一)

注:Pagerduty作為報警系統,出鏡率很高。 雖然收費,但對于企業來說很便宜。 一個月幾十美金 不太支持中文,主要是語音方面。 Prometheus 查詢語句 , 基于數學運算模式的監控查詢 我們計算一下一天多少秒 1 * 24 * 60 *…

ChatGPT是科學還是藝術?

OpenAI最近談到GPT4變懶的問題,說“它更像是多人共同參與的藝術創作”,那到底大模型是科學還是藝術?

公式識別任務各個鏈條全部打通

目錄 引言公式識別任務是什么?公式識別任務解決方案初探使用建議寫在最后 引言 隨著LaTeX-OCR模型轉換問題的解決,公式識別任務中各個鏈條已經全部打通。小伙伴們可以放開膀子干了。 解決業界問題的方案,并不是單獨訓練一個模型就完事了&am…

如何確認網站是否有漏洞,如何找出網站存在的漏洞,找到漏洞該如何處理

如何確認網站或者服務器是否有漏洞 判斷一個網站是否是存在漏洞的方法: 1.可以借助德迅云安全漏洞掃描功能來檢查漏洞。 2.打開德迅云安全首頁,點擊最上面導航欄中的“安全產品”。 3.滑到“漏洞掃描”,選擇“產品價格”服務。 4.選擇您需…

【力扣】141和142環形鏈表

141.環形鏈表 法一:快慢指針 思路: 用兩個指針slow,fast,后者能比前者多走一步路,那判斷是不是有環,只需要判斷是否會相遇。 就是有一個能比烏龜跑2倍快的兔子,兩小只都在有環的路上跑,那是不是肯定會相…

golang開發之個微機器人的二次開發

簡要描述: 下載消息中的文件 請求URL: http://域名地址/getMsgFile 請求方式: POST 請求頭Headers: Content-Type:application/jsonAuthorization:login接口返回 參數: 參數名必選類型…