數(shù)據(jù)運(yùn)行時(shí)數(shù)據(jù)區(qū)域
Java虛擬機(jī)在執(zhí)行Java程序過(guò)程中會(huì)將它管理的內(nèi)存分成若干個(gè)不同的數(shù)據(jù)區(qū)域,不同的數(shù)據(jù)區(qū)域用途不同,內(nèi)存的管理(創(chuàng)建和銷(xiāo)毀)不同,如圖1-1是Java虛擬機(jī)中數(shù)據(jù)的區(qū)域模型圖。

圖1-1 Java 虛擬機(jī)運(yùn)行時(shí)數(shù)據(jù)區(qū)
Java虛擬機(jī)棧
Java虛擬機(jī)棧,也就是大家經(jīng)常說(shuō)的棧內(nèi)存,Java棧。每個(gè)方法在被執(zhí)行的時(shí)候Java虛擬機(jī)都會(huì)同步創(chuàng)建一個(gè)棧幀(Stack Frame),用于存儲(chǔ)局部變量表、操作數(shù)棧、動(dòng)態(tài)連接、方法返回地址等其他信息。每一個(gè)方法被調(diào)用到執(zhí)行完的過(guò)程對(duì)應(yīng)的就是每個(gè)棧幀在虛擬機(jī)中從入棧到出棧的過(guò)程。棧幀是一種基本數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)。如圖1-2所示。

圖1-2 棧幀概念結(jié)構(gòu)
局部變量表
什么是局部變量表
有什么作用
存儲(chǔ)的是什么
操作數(shù)棧
什么是操作數(shù)棧
有什么作用
動(dòng)態(tài)連接
什么是動(dòng)態(tài)連接
有什么作用
方法返回地址
是什么
有什么作用
其他信息
其他信息是什么
總結(jié)
思考
引用
- 《深入理解Java虛擬·JVM高級(jí)特性與最佳實(shí)踐 第3版》周志明