深入理解HotSpot JVM 基本原理

關于JAVA

Java?編程語言是一種通用的、并發的、面向對象的語言。它的語法類似于C和C++,但它省略了許多使C和C++復雜、混亂和不安全的特性。

Java 是幾乎所有類型的網絡應用程序的基礎,也是開發和提供嵌入式和移動應用程序、游戲、基于 Web 的內容和企業軟件的全球標準。.

從筆記本電腦到數據中心,從游戲控制臺到科學超級計算機,從手機到互聯網,Java 無處不在!

Java的技術體系主要有各種硬件平臺上的JVM虛擬機、提供各開發領域接口支持的Java API、Java編程語言、三方Java框架(Spring等)構成。

Java程序設計語言、Java虛擬機、Java API類庫這三部分統稱為JDK(Java Development Kit),JDK是用于支持Java程序開發的最小環境。

可以把Java API類庫中的Java SE API子集和Java虛擬機這兩部分統稱為JRE(Java Runtime Environment),JRE是支持Java程序運行的標準環境。

下圖展示了Java技術體系所包含的內容,以及JDK和JRE所涵蓋的范圍。

關于JVM

Java虛擬機是Java平臺的基石。負責其硬件和操作系統的獨立性,為Java字節碼的執行提供運行時環境。

JVM虛擬機在Java 虛擬機規范中沒有規定具體實現,而是有各大廠商自己實現。

Implementation details that are not part of the Java Virtual Machine’s specification would unnecessarily constrain the creativity of implementors. For example, the memory layout of run-time data areas, the garbage-collection algorithm used, and any internal optimization of the Java Virtual Machine instructions (for example, translating them into machine code) are left to the discretion of the implementor.

Classic VM 是“世界上第一款商用Java虛擬機”,在JDK 1.2之前是Sun JDK中唯一的虛擬機。

在JDK 1.2時,它與HotSpot VM并存,而在JDK 1.3時,HotSpot VM成為默認虛擬機,直到JDK 1.4的時候,Classic VM才完全退出商用虛擬機的歷史舞臺。

1999年4月27日,HotSpot虛擬機發布,HotSpot最初由一家名為“Longview Technologies”的小公司開發,因為HotSpot的優異表現,這家公司在1997年被Sun公司收購了。后來它成為了JDK 1.3及之后所有版本的Sun JDK的默認虛擬機。

在2008年和2009年,Oracle公司分別收購了BEA公司和Sun公司,這樣Oracle就同時擁有了兩款優秀的Java虛擬機:JRockit VM和HotSpot VM。

關于HostSpot

Java HotSpot虛擬機是Sun用于Java平臺的VM。 它使用許多先進技術為Java應用程序提供最佳性能,包括最先進的內存模型,垃圾收集器和自適應優化器。

在SUN/Orace JDK中包括兩種風格的VM

  • client mode
  • server mode

默認以client mode啟動。

啟動命令加- server,以server mode啟動。

查看當前JVM mode:

兩種mode的區別:

client mode

  • 短時間內啟動,運行時,占用更少內存
  • C1輕量級編譯器,優化較少
  • 適合輕量級程序和桌面程序

server mode

  • 啟動慢,運行時,占用更大的內存
  • C2重量級編譯器,更徹底的優化
  • 能提供更好的性能,適合生產部署

HotSpot JVM Architecture

HotSpot JVM 主要包括3個組件:

  • Class Loader Subsystem
  • Runti

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

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

相關文章

【HTTP/3:互聯網通信的量子飛躍】

HTTP/3:互聯網通信的量子飛躍 如果說HTTP/1.1是鄉村公路,HTTP/2是現代高速公路系統,那么HTTP/3就像是一種革命性的"傳送門"技術,它徹底重寫了數據傳輸的底層規則,讓信息幾乎可以瞬間抵達目的地,…

Apipost免費版、企業版和私有化部署詳解

Apipost是企業級的 API 研發協作一體化平臺,為企業提供 API研發測試管理全鏈路解決方案,不止于API研發場景,增強企業API資產管理。 Apipost 基于同一份數據源,同時提供給后端開發、前端開發、測試人員使用的接口調試、Mock、自動化…

使用若依二次開發商城系統-1:搭建若依運行環境

前言 若依框架有很多版本,這里使用的是springboot3vue3這樣的一個前后端分離的版本。 一.操作步驟 1 下載springboot3版本的后端代碼 后端springboot3的代碼路徑,https://gitee.com/y_project/RuoYi-Vue 需要注意我們要的是springboot3分支。 先用g…

速成GO訪問sql,個人筆記

更多個人筆記:(僅供參考,非盈利) gitee: https://gitee.com/harryhack/it_note github: https://github.com/ZHLOVEYY/IT_note 本文是基于原生的庫 database/sql進行初步學習 基于ORM等更多操作可以關注我…

【C++指南】告別C字符串陷阱:如何實現封裝string?

🌟 各位看官好,我是egoist2023! 🌍 種一棵樹最好是十年前,其次是現在! 💬 注意:本章節只詳講string中常用接口及實現,有其他需求查閱文檔介紹。 🚀 今天通過了…

系統架構師2025年論文《論軟件架構評估2》

論軟件系統架構評估 v2.0 摘要: 某市醫院預約掛號系統建設推廣應用項目是我市衛生健康委員會 2019 年發起的一項醫療衛生行業便民惠民信息化項目,目的是實現轄區內患者在轄區各公立醫療機構就診時,可以通過多種線上渠道進行預約掛號,提升就醫體驗。我作為系統架構師參與此…

BEVDet4D: Exploit Temporal Cues in Multi-camera 3D Object Detection

背景 對于現有的BEVDet方法,它對于速度的預測誤差要高于基于點云的方法,對于像速度這種與時間有關的屬性,僅靠單幀數據很難預測好。因此本文提出了BEVDet4D,旨在獲取時間維度上的豐富信息。它是在BEVDet的基礎上進行拓展,保留了之前幀的BEV特征,并將其進行空間對齊后與當…

el-upload 上傳邏輯和ui解耦,上傳七牛

解耦的作用在于如果后面要我改成從阿里云oss上傳文件,我只需要實現上傳邏輯從七牛改成阿里云即可,其他不用動。實現方式有2部分組成,一部分是上傳邏輯,一部分是ui。 上傳邏輯 大概邏輯就是先去服務端拿上傳token和地址&#xff0…

酒水類目電商代運營公司-品融電商:全域策略驅動品牌長效增長

酒水類目電商代運營公司-品融電商:全域策略驅動品牌長效增長 在競爭日益激烈的酒水市場中,品牌如何快速突圍并實現長效增長?品融電商憑借「效品合一 全域增長」方法論與全鏈路運營能力,成為酒水類目代運營的領跑者。從品牌定位、視…

機器學習特征工程中的數值分箱技術:原理、方法與實例解析

標題:機器學習特征工程中的數值分箱技術:原理、方法與實例解析 摘要: 分箱技術作為機器學習特征工程中的關鍵環節,通過將數值數據劃分為離散區間,能夠有效提升模型對非線性關系的捕捉能力,同時增強模型對異…

【MySQL專欄】MySQL數據庫的復合查詢語句

文章目錄 1、首先練習MySQL基本語句的練習①查詢工資高于500或崗位為MANAGER的雇員,同時還要滿足他們的姓名首字母為大寫的J②按照部門號升序而雇員的工資降序排序③使用年薪進行降序排序④顯示工資最高的員工的名字和工作崗位⑤顯示工資高于平均工資的員工信息⑥顯…

Python爬蟲(5)靜態頁面抓取實戰:requests庫請求頭配置與反反爬策略詳解

目錄 一、背景與需求?二、靜態頁面抓取的核心流程?三、requests庫基礎與請求頭配置?3.1 安裝與基本請求3.2 請求頭核心參數解析?3.3 自定義請求頭實戰 四、實戰案例:抓取豆瓣讀書Top250?1. 目標?2. 代碼實現3. 技術要點? 五、高階技巧與反反爬策略?5.1 動態…

HTML給圖片居中

在不同的布局場景下&#xff0c;讓 <img> 元素居中的方法有所不同。下面為你介紹幾種常見的居中方式 1. 塊級元素下的水平居中 如果 <img> 元素是塊級元素&#xff08;可以通過 display: block 設置&#xff09;&#xff0c;可以使用 margin: 0 auto 來實現水平居…

【高頻考點精講】前端構建工具對比:Webpack、Vite、Rollup和Parcel

前端構建工具大亂斗:Webpack、Vite、Rollup和Parcel誰是你的菜? 【初級】前端開發工程師面試100題(一) 【初級】前端開發工程師面試100題(二) 【初級】前端開發工程師的面試100題(速記版) 最近在后臺收到不少同學提問:“老李啊,現在前端構建工具這么多,我該選哪個?…

趕緊收藏!教您如何用 GitHub 賬號,獲取永久免費的 Docker 容器!!快速搭建我們的網站/應用!

文章目錄 ?? 介紹 ???? 演示環境 ???? 永久免費的 Docker 容器 ???? 注冊與登錄? 創建 Docker 容器?? 部署你的網站?? 注意事項?? 使用場景?? 相關鏈接 ???? 介紹 ?? 還在為搭建個人網站尋找免費方案而煩惱? 今天發現一個寶藏平臺!只需一個 Git…

Java大師成長計劃之第3天:Java中的異常處理機制

&#x1f4e2; 友情提示&#xff1a; 本文由銀河易創AI&#xff08;https://ai.eaigx.com&#xff09;平臺gpt-4o-mini模型輔助創作完成&#xff0c;旨在提供靈感參考與技術分享&#xff0c;文中關鍵數據、代碼與結論建議通過官方渠道驗證。 在 Java 編程中&#xff0c;異常處理…

大數據去重

實驗4 大數據去重 1.實驗目的 通過Hadoop數據去重實驗&#xff0c;學生可以掌握準備數據、偽分布式文件系統配置方法&#xff0c;以及在集成開發環境Eclipse中實現Hadoop數據去重方法。 2.實驗要求 了解基于Hadoop處理平臺的大數據去重過程&#xff0c;理解其主要功能&…

http協議、全站https

一、http協議 1、為何要學http協議? 用戶用瀏覽器訪問網頁,默認走的都是http協議,所以要深入研究web層,必須掌握http協議 2、什么是http協議 1、全稱Hyper Text Transfer Protocol(超文本傳輸協議) ### 一個請求得到一個響應包 普通…

使用 Logstash 遷移 MongoDB 數據到 Easysearch

大家好&#xff01;在前面的文章中&#xff0c;我們已經詳細介紹了如何通過 Logstash 和 Canal 工具實現 MySQL 數據向 Easysearch 的遷移。如果您正在使用 MongoDB 作為數據存儲&#xff0c;并希望將其數據遷移到 Easysearch 中&#xff0c;這篇指南或許能為您提供一些幫助。 …

亞馬遜英國站FBA費用重構:輕小商品迎紅利期,跨境賣家如何搶占先機?

一、政策背景&#xff1a;成本優化成平臺與賣家共同訴求 2024年4月&#xff0c;亞馬遜英國站&#xff08;Amazon.co.uk&#xff09;發布近三年來力度最大的FBA費用調整方案&#xff0c;標志著英國電商市場正式進入精細化成本管理時代。這一決策背后&#xff0c;是多重因素的疊…