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