摘要:字節(jié)碼翻譯機(jī)器碼運(yùn)行按照二八定律,的代碼用了的運(yùn)算時(shí)間,所以這的代碼可不可以用更快的方式來(lái)運(yùn)行,所以即時(shí)編譯器運(yùn)勢(shì)而生。
前期了解知識(shí) 程序語(yǔ)言是什么?
程序語(yǔ)言就是向人和計(jì)算機(jī)描述計(jì)算的記號(hào)。
有哪些程序語(yǔ)言?程序語(yǔ)言分類(lèi)(按照級(jí)別分類(lèi))
按照級(jí)別分類(lèi)
1.低級(jí)語(yǔ)言
2.高級(jí)語(yǔ)言
(1)面向過(guò)程語(yǔ)言
(2)面向?qū)ο笳Z(yǔ)言
規(guī)律:越高級(jí)程序語(yǔ)言越靠近人的理解方式,但是這樣在計(jì)算機(jī)運(yùn)行卻不行,所以需要將程序語(yǔ)言翻譯成計(jì)算機(jī)所能夠識(shí)別的語(yǔ)言。翻譯的方式有哪些?
1.編譯
2.解釋
兩種方式的區(qū)別和優(yōu)缺點(diǎn)
1.編譯會(huì)生成中間文件,解釋不需要生成中間文件,邊解釋邊運(yùn)行
2.編譯比解釋更快
3.解釋檢查代碼是否有錯(cuò)誤更仔細(xì)比編譯,因?yàn)榻忉屖且痪湟痪涞慕忉尅?/p>
衍生正文
程序語(yǔ)言的分類(lèi)
1.編譯型(C,C++等)
2.解釋型(JS等)
3.半編譯半解釋(JAVA等)
Java運(yùn)行的流程.class文件翻譯成機(jī)器碼運(yùn)行代碼
前期知識(shí)點(diǎn)
JVM內(nèi)存分配
方法區(qū):類(lèi)加載到方法區(qū)
pc寄存器:存放各個(gè)線(xiàn)程執(zhí)行的位置
Java方法棧:調(diào)用方法的時(shí)候會(huì)生成棧幀,用來(lái)存儲(chǔ)局部變量(廣義的,包括this指針和傳遞的方法參數(shù))和操作數(shù)。
.class字節(jié)碼翻譯機(jī)器碼運(yùn)行
按照二八定律,20%的代碼用了80%的運(yùn)算時(shí)間,所以這20%的代碼可不可以用更快的方式來(lái)運(yùn)行,所以即時(shí)編譯器運(yùn)勢(shì)而生。
分類(lèi):
1.解釋器解釋
2.即時(shí)編譯器編譯
1.c1編譯器:client編譯器,對(duì)啟動(dòng)性能要求高的,優(yōu)化簡(jiǎn)單,編譯簡(jiǎn)單 2.c2編譯器:server編譯器,對(duì)峰值性要求高的,優(yōu)化復(fù)雜,編譯時(shí)間長(zhǎng) 3.Graal編譯器
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/73426.html
摘要:一切都是對(duì)象之前自己學(xué)習(xí)就是以系統(tǒng)的角度去學(xué)習(xí),就是我們把這些知識(shí)點(diǎn)羅列出來(lái),然后做一個(gè)全面的學(xué)習(xí)。按照面向?qū)ο蟮乃枷?,一切都是?duì)象,不管什么數(shù)據(jù)都應(yīng)該是對(duì)象,但是對(duì)于一些基礎(chǔ)的數(shù)據(jù)類(lèi)型為了運(yùn)行效率和內(nèi)存的優(yōu)化,將個(gè)基本類(lèi)型進(jìn)行了特殊處理。 一切都是對(duì)象 之前自己學(xué)習(xí)Java就是以系統(tǒng)的角度去學(xué)習(xí),就是我們把這些知識(shí)點(diǎn)羅列出來(lái),然后做一個(gè)全面的學(xué)習(xí)。這樣的的確確可以將知識(shí)點(diǎn)都學(xué)習(xí)全面,...
摘要:占市場(chǎng)份額,剩下是其他的開(kāi)發(fā)工具??傊砷_(kāi)發(fā)工具就是為了提高開(kāi)發(fā)速度。編寫(xiě)第一個(gè)程序在上點(diǎn)擊右鍵填寫(xiě)上類(lèi)名在下面有一個(gè)選中創(chuàng)建方法。 使用集成開(kāi)發(fā)工具eclipse 1、java的集成開(kāi)發(fā)工具很多,包括:eclipse、Intellij IDEA、netbeans..... eclips...
摘要:三對(duì)象的內(nèi)存布局對(duì)象在堆中的布局分為三個(gè)區(qū)域?qū)ο箢^,實(shí)例數(shù)據(jù),對(duì)齊填充??偨Y(jié)了解內(nèi)存區(qū)域是對(duì)的深入學(xué)習(xí),以前只知道有堆和棧的區(qū)分,現(xiàn)在我們了解到了具體的堆棧的作用。 引言 學(xué)習(xí)Java也有一段時(shí)間了,總感覺(jué)有些東西學(xué)的不是很精通。例如Java內(nèi)存區(qū)域到底是怎么樣的?程序是怎么跑的?對(duì)象是怎么存放的?這些都影響了我對(duì)自己的程序運(yùn)行的熟悉程度。 一. 運(yùn)行時(shí)數(shù)據(jù)區(qū)域 showImg(/im...
摘要:偉大的語(yǔ)言希望到目前為止你還沒(méi)有暈,到這里我們知道了,不管我們用的是什么的也好最終都逃不出等語(yǔ)言除外,不直接執(zhí)行之類(lèi)的解釋型語(yǔ)言程序,可以直接執(zhí)行的是解釋器代碼,解釋器最終來(lái)執(zhí)行等程序,這就是解釋型語(yǔ)言效率不如編譯型語(yǔ)言效率高的原因。 雖然在這里我們主要關(guān)注的是操作系統(tǒng),但畢竟操作系統(tǒng)的目的就是能更好的運(yùn)行用戶(hù)程序,而且該教程主要是站在程序員的角度來(lái)講解操作系統(tǒng)的,作為程序員是繞不開(kāi)程...
摘要:偉大的語(yǔ)言希望到目前為止你還沒(méi)有暈,到這里我們知道了,不管我們用的是什么的也好最終都逃不出等語(yǔ)言除外,不直接執(zhí)行之類(lèi)的解釋型語(yǔ)言程序,可以直接執(zhí)行的是解釋器代碼,解釋器最終來(lái)執(zhí)行等程序,這就是解釋型語(yǔ)言效率不如編譯型語(yǔ)言效率高的原因。 雖然在這里我們主要關(guān)注的是操作系統(tǒng),但畢竟操作系統(tǒng)的目的就是能更好的運(yùn)行用戶(hù)程序,而且該教程主要是站在程序員的角度來(lái)講解操作系統(tǒng)的,作為程序員是繞不開(kāi)程...
閱讀 1734·2021-10-18 13:30
閱讀 2608·2021-10-09 10:02
閱讀 2965·2021-09-28 09:35
閱讀 2091·2019-08-26 13:39
閱讀 3522·2019-08-26 13:36
閱讀 1950·2019-08-26 11:46
閱讀 1135·2019-08-23 14:56
閱讀 1694·2019-08-23 10:38