摘要:編譯器只需面向,生成能理解的代碼或字節碼文件。源文件經編譯器,編譯成字節碼程序,通過將每一條指令翻譯成不同平臺機器碼,通過特定平臺運行。漲見識,字節碼執行過程分析。解決辦法減少默認棧的容量來換取更多的線程支持。
前言
JVM是java的核心和基礎,在java編譯器和os平臺之間的虛擬處理器。它是一種基于下層的操作系統和硬件平臺并利用軟件方法來實現的抽象的計算機,可以在上面執行java的字節碼程序。
java編譯器只需面向JVM,生成JVM能理解的代碼或字節碼文件。Java源文件經編譯器,編譯成字節碼程序,通過JVM將每一條指令翻譯成不同平臺機器碼,通過特定平臺運行。
這里就給大家講一下JVM。
技術大咖帶你垂直打擊JVM
什么是運行時數據區? 我們一起來分享。
了解JVM底層原理,讓你的代碼擼得飛起。
搞定內存溢出,漲薪升職。
漲見識,字節碼執行過程分析。
直擊真相,原理和代碼全都有。
測試、效果演示及總結。
JDK: java development kit (Java開發工具包) 編譯、反編譯、調試等。
JRE: java runtime enviroment (Java運行環境)
JVM: java Virtual Mechinal (Java虛擬機) 一次編寫,到處運行!
學jvm的目就是:
提升代碼質量、解決項目問題。
面試!面試!還是面試!
JVM是怎么玩的
類加載器:Class字節碼文件加載到內存
執行引擎:解析字節碼指令,得到執行結果
運行時數據區
JVM運行時數據區線程私有
程序計數器
虛擬機棧
本地方法棧
線程共享
堆
列表項目
方法區
BAT的JVM面試題JVM什么情況下會發生棧內存溢出?
JVM中一次完整的GC流程是怎樣的?
GC——垃圾回收
完整意味著有多種情況
程序計數器
指向當前線程正在執行的字節碼指令的地址(行號)
棧(Stack)
入口和出口只有一個
入棧
出棧
FILO
先進后出
虛擬機棧
創建一個線程就為線程分配一個虛擬機棧,它又會包含多個棧幀,因為每運行一個方法就創建一個棧幀。
運行時才有數據
棧幀
運行一個線程中的一個方法
1.局部變量表
2.操作數棧
3.動態連接
4.返回地址
演示一段代碼的方法的執行過程
代碼:
public int calc(){ int a=100; int b=200; int c=300; return(a+b)*c; }虛擬機棧的異常
StackOverFlowError異常
原因:執行的虛擬機棧深度大于虛擬機棧允許的最大深度(方法的遞歸調用)。
解決辦法:增加默認棧的容量。
棧容量 -Xss 默認1M
OutOfMemeoryError異常
原因:多線程環境下虛擬機在擴展棧時無法申請到足夠的內存空間。
解決辦法:減少默認棧的容量來換取更多的線程支持。
Java堆
Java堆是被所有線程共享的一塊內存區域
所有的對象實例以及數組要在堆上分配
元數據區
老版本名稱:方法區(永久代)
類信息、常量、編譯后的代碼信息
直接內存
以上源于一個視頻講解的概述總結,后續將分享后半部分的內容:
可達性分析算法——GC Roots
JVM中的堆
新生代為什么分三個區?
新生代對象的分配和回收
老年代對象的分配和回收
JVM中一次完整的GC流程是怎樣的?
**如果有興趣想了解視頻具體內容的可以關注我,加入我的合作群(805685193)即可獲取原視頻。
還有一些Java架構視頻講解,需要獲取Dubbo、Redis、設計模式、Netty、zookeeper、Spring cloud、分布式、高并發等架構技術視頻教程資料,架構思維導圖,和BATJ面試題及答案的,都是免費分享的。
關注我,加入我的合作群(805685193)即可獲取視頻。**
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11952.html
摘要:編譯器只需面向,生成能理解的代碼或字節碼文件。源文件經編譯器,編譯成字節碼程序,通過將每一條指令翻譯成不同平臺機器碼,通過特定平臺運行。漲見識,字節碼執行過程分析。解決辦法減少默認棧的容量來換取更多的線程支持。 前言 JVM是java的核心和基礎,在java編譯器和os平臺之間的虛擬處理器。它是一種基于下層的操作系統和硬件平臺并利用軟件方法來實現的抽象的計算機,可以在上面執行java的...
摘要:,黑色的主題風格,很符合。時間復雜度雖然成功,但我明顯感覺代碼寫得不是很優雅。這個是沒錯的,但缺乏了宏觀的視角,會變得片面。但是不重要,關鍵是這個思想要學習,可以應用到其他地方。求和,大于就返回偶數的位置,否則返回奇數的位置。 前幾天做LeetCode上的大數乘法,代碼沒錯,可就是提交不成功,顯示SyntaxError: Unexpected token var我把所有代碼都注釋掉,只...
摘要:起初,項目使用的是,其提供的方法用著比較爽,由于項目的很多數據來自豆瓣的,直接上簡單方便,跨域什么的不考慮。跨域問題,上面已經介紹,在不能操控的豆瓣數據上,使用的是。 項目地址 在線演示 不識廬山真面目,只緣身在此山中。 大概一個月前,開源了Vue重構豆瓣移動端的項目,效果還可以,收到了很多小伙伴的反饋,話說是要寫一些文章的,但遲遲沒有動筆,估計小伙伴們等的花都謝了,拖延癥是病,需要治...
摘要:菜鳥教程框架中文手冊入門目標使用搭建通過對數據增刪查改沒了純粹占行用的拜 后端API入門學習指北 了解一下一下概念. RESTful API標準] 所有的API都遵循[RESTful API標準]. 建議大家都簡單了解一下HTTP協議和RESTful API相關資料. 阮一峰:理解RESTful架構 阮一峰:RESTful API 設計指南 RESTful API指南 依賴注入 D...
摘要:菜鳥教程框架中文手冊入門目標使用搭建通過對數據增刪查改沒了純粹占行用的拜 后端API入門學習指北 了解一下一下概念. RESTful API標準] 所有的API都遵循[RESTful API標準]. 建議大家都簡單了解一下HTTP協議和RESTful API相關資料. 阮一峰:理解RESTful架構 阮一峰:RESTful API 設計指南 RESTful API指南 依賴注入 D...
閱讀 1944·2021-10-12 10:12
閱讀 3071·2019-08-30 15:44
閱讀 842·2019-08-30 15:43
閱讀 2993·2019-08-30 14:02
閱讀 2076·2019-08-30 12:54
閱讀 3496·2019-08-26 17:05
閱讀 1979·2019-08-26 13:34
閱讀 1050·2019-08-26 11:54