視頻教程-深入jvm內(nèi)核原理、診斷與優(yōu)化-_第1頁
視頻教程-深入jvm內(nèi)核原理、診斷與優(yōu)化-_第2頁
視頻教程-深入jvm內(nèi)核原理、診斷與優(yōu)化-_第3頁
視頻教程-深入jvm內(nèi)核原理、診斷與優(yōu)化-_第4頁
視頻教程-深入jvm內(nèi)核原理、診斷與優(yōu)化-_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余23頁可下載查看

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

法律【

和幻燈片為煉數(shù)成金網(wǎng)絡(luò)課程的教學(xué)資料,所有資料只能在課程內(nèi)使用,不得在課程以外范圍散播,違者將可能被 法律和經(jīng)濟(jì)責(zé)任。課程詳情

煉數(shù)成金培訓(xùn)http:

初識(shí)JVMJVM的概念JVM發(fā)展歷史JVM種類Java語言規(guī)范JVM規(guī)范初識(shí)JVM–JVM概念JVM是Java

Virtual

Machine的簡(jiǎn)稱。意為Java虛擬機(jī)虛擬機(jī)模擬的具有完整硬件系統(tǒng)功能的、運(yùn)行在一個(gè)完全–

指通過有哪些虛擬機(jī)–

VMWare環(huán)境中的完整計(jì)算機(jī)系統(tǒng)Visual

BoxJVMVMWare或者Visual

Box都是使用模擬物理CPU的指令集JVM使用

模擬Java

字節(jié)碼的指令集初識(shí)JVM-Java和JVM的歷史1996年SUN

JDK

1.0

Classic

VM純解釋運(yùn)行,使用 進(jìn)行JIT1997年JDK1.1發(fā)布AWT、 類、JDB I、反射1998年JDK1.2

Solaris

Exact

VMJIT解釋器混合Accurate

Memory

Management精確內(nèi)存管理,數(shù)據(jù)類型敏感提升的GC性能2000年JDK

1.3

Hotspot作為默認(rèn)虛擬機(jī)發(fā)布2002年JDK

1.4Classic

VM退出歷史舞臺(tái)JDK1.2開始稱為Java

2J2SE

J2EE

J2ME

的出現(xiàn)加入SwingCollections加入JavaSoundAssert

正則表達(dá)式

NIO IPV6

日志API

加密類庫(kù)初識(shí)JVM-Java和JVM的歷史2004年發(fā)布

JDK1.5即JDK5、J2SE

5、Java

5泛型注解裝箱枚舉可變長(zhǎng)的參數(shù)Foreach循環(huán)JDK1.6

JDK6語言支持JDBC

4.0Java編譯器API初識(shí)JVM-Java和JVM的歷史2011年JDK7發(fā)布延誤項(xiàng)目推出到JDK8G1動(dòng)態(tài)語言增強(qiáng)64位系統(tǒng)中的壓縮指針NIO

2.02014年JDK8發(fā)布Lambda表達(dá)式語法增強(qiáng)Java類型注解2016年JDK9模塊化初識(shí)JVM-Java和JVM的歷史–使用最為廣泛的JVM為HotSpotHotSpot為L(zhǎng)ongview

Technologies開發(fā)被SUN收購(gòu)2006年Java開源并建立OpenJDKHotSpot

成為Sun

JDK和OpenJDK中所帶的虛擬機(jī)2008年Oracle收購(gòu)BEA得到JRockit

VM2010年Oracle收購(gòu)Sun得到HotspotOracle宣布在JDK8時(shí)整合JRockit和Hotspot,優(yōu)勢(shì)互補(bǔ)在Hotspot基礎(chǔ)上,移植JRockit優(yōu)秀特性初識(shí)JVM-各式JVMKVMSUN發(fā)布IOS

Android前,廣泛用于

系統(tǒng)CDC/CLDC

HotSpot的Java編程接口、 、PDA等設(shè)備上建立J2ME的重要組成部分JRockit–

BEA初識(shí)JVM-各式JVMIBM

J9

VMIBMApache

Harmony兼容于JDK

1.5和JDK1.6的Java程序運(yùn)行平臺(tái)與Oracle關(guān)系惡劣退出JCP,Java社區(qū)的OpenJDK出現(xiàn)后,受到 2011年

退役沒有大規(guī)模 經(jīng)歷對(duì)Android的發(fā)展有積極作用初識(shí)JVM覺得在未來,Java應(yīng)該增加和支持哪些功能呢?初識(shí)JVM–規(guī)范Java語言規(guī)范語法變量類型文法JVM規(guī)范Class文件類型運(yùn)行時(shí)數(shù)據(jù)幀棧虛擬機(jī)的啟動(dòng)虛擬機(jī)的指令集初識(shí)JVM–Java語言規(guī)范語法定義IfThenStatement:if

(

Expression

)

StatementArgumentList:ArgumentArgumentList

,

Argumentif(true){do

sth;}add(a,b,c,d);初識(shí)JVM–Java語言規(guī)范詞法結(jié)構(gòu)\u+4個(gè)16進(jìn)制數(shù)字表示UTF-16行終結(jié)符:CR,or

LF,or

CR

LF.空白符空格

tab\t換頁\f行終結(jié)符注釋標(biāo)示符–Identifier:IdentifierChars

but

not

a

Keyword

or

BooleanLiteral

or

NullLiteralIdentifierChars:JavaLetterIdentifierCharsJavaLetterOrDigitJavaLetter:any

Unicode

character

that

is

a

Java

letter

(seebelow)JavaLetterOrDigit:any

Unicode

character

that

is

a

Javaletter-or-digit

(see

below)關(guān)鍵字初識(shí)JVM–Java語言規(guī)范public

static

void打印(){System.out.println("中文方法哦");}public static

void

main(String[]

args)

{打印();}初識(shí)JVM–Java語言規(guī)范_Cafe

1996

0x00_FF

00_FF詞法結(jié)構(gòu)Int0

2

0372

0Long0l

0777L

0x100000000L

2_147_483_648L

0xC0B0LFloat1e1f2.f

.3f

0f

3.14f6.022137e+23fDouble1e1

2.

.3

0.0

3.141e-9d

1e137操作?

+=

-=

*=

/=

&=

|=

^=

%=

<<=

>>=

>>>=初識(shí)JVM–Java語言規(guī)范哪些是合法的數(shù)字呢?private

int

a=0

_Cafe;private

float

b=0x1.fffffeP+127f;private

float

c=1996;private

float

d=1996.3;private

int

f=9999e2;private

double

g=33e2;private

float

h=0x1.fffep-12f;private

float

i=1.fffep-12f;privaprivaong

p=0b1_1_1_0_1;ong

q=0b1_1_1_0_2;初識(shí)JVM–Java語言規(guī)范類型和變量元類型byte

short

int

long

float

char變量初始值boolean

falsechar

\u0000泛型class

Value

{

int

val;

}class

Test

{public

static

void

main(String[]args){int

i1

=3;int

i2

=

i1;i2

=4;System.out.print("i1=="

+

i1);System.out.println("

but

i2=="

+

i2);Value

v1

=

new

Value();v1.val

=

5;Value

v2

=

v1;v2.val

=

6;System.out.print("v1.val=="

+

v1.val);System.out.println("

and

v2.val=="

+

v2.val);}}i1==3

but

i2==4v1.val==6

and

v2.val==6i1i2為不同的變量v1

v2為

同一個(gè)實(shí)例初識(shí)JVM–Java語言規(guī)范Java內(nèi)存模型類加載

的過程public

static

final異常數(shù)組的使用…….的定義初識(shí)JVM–JVM規(guī)范Java語言Java語言規(guī)范定義了Java語言和JVM相對(duì)獨(dú)立GroovyClojureScalaJVM主要定義二進(jìn)制class文件和JVM指令集等初識(shí)JVM–JVM規(guī)范Class文件格式數(shù)字的

表示和–

Byte -128

to

127

(-27

to

27

-

1)returnAddress數(shù)據(jù)類型定義–

指向操作碼的指針。不對(duì)應(yīng)Java數(shù)據(jù)類型,不能在運(yùn)行時(shí)修改。Finally實(shí)現(xiàn)需要定義PC堆棧方法區(qū)初識(shí)JVM–JVM規(guī)范整數(shù)的表達(dá)原碼:第一位為符號(hào)位(0為正數(shù),1為負(fù)數(shù))反碼:符號(hào)位不動(dòng),原碼取反負(fù)數(shù)補(bǔ)碼:符號(hào)位不動(dòng),反碼加1正數(shù)補(bǔ)碼:和原碼相同打印整數(shù)的二進(jìn)制表示int

a=-6;for(int

i=0;i<32;i++){?intt=(a

&

0x80000000>>>i)>>>(31-i);System.out.print(t);?}500000101-6原碼:10000110反碼:11111001補(bǔ)碼:11111010-1原碼:10000001反碼:11111110補(bǔ)碼:11111111初識(shí)JVM–JVM規(guī)范為什么要用補(bǔ)碼?–

計(jì)算0的表示:0正數(shù):00000000負(fù)數(shù):100000000正數(shù):000000000負(fù)數(shù):10000000反碼:11111111補(bǔ)碼:00000000-6+00000101=

11111111-4+00000101=

00000001-3+00000101=

00000010初識(shí)JVM–JVM規(guī)范Float的表示與定義支持IEEE754s

eeeeeeee

mmmmmmmmmmmmmmmmmmmmmmme全0尾數(shù)附加位為0否則尾數(shù)附加位為1s*m*2^(e-127)一些特殊的方法<clinit><init>尾數(shù):23指數(shù):8-500000000000000-1*2^(129-127)*(2^0+2^-2)初識(shí)JVM–JVM規(guī)范VM指令集類型轉(zhuǎn)化l2i出棧入棧操作aload

astore運(yùn)算iadd

isub流程控制ifeqifne函數(shù)調(diào)用invokevirtual

invokeinterface

invokespecial

invokestatic初識(shí)JVM–JVM規(guī)范JVM需要對(duì)Java

Library提供以下支持:反射java.lang.reflectClassLoader初始化class和interface安全相關(guān)java.security多線程弱初識(shí)JVM–JVM規(guī)范JVM的編譯源碼到JVM指令的對(duì)應(yīng)格式JavapJVM反匯編的格式<index>

<opcode>

[

<operand1>

[

<operand2>...

]]

[<comment>]void

spin()

{0iconst_0//

Push

intconstant

0int

i;1istore_1//

Store

into

local

variable

1

(i=0)for

(i

=

0;

i

<

100;

i++)

{

;2goto

8// time

through

don't

increment//

Loop

body

is

empty5i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論