摘要: 對(duì)于String s = "haha" ,它的虛擬機(jī)指令:
0: ldc #16; //String haha
2: astore_1
3: return
對(duì)于上面虛擬機(jī)指令,其各自的指令流程在《深入JAVA虛擬機(jī)》這樣描述到(結(jié)合上面實(shí)例):
ldc指令格式:ldc,index
ldc指令過(guò)程:
要執(zhí)行l(wèi)dc指令,JVM首先查找index所指定的常量池入口,在index指向的常量池入口,JVM將會(huì)查找CONSTANT_Integer_info,CONSTANT_Float_info和CONSTANT_String_info入口。如果還沒(méi)有這些入口,JVM會(huì)解析它們。而對(duì)于上面的hahaJVM會(huì)找到CONSTANT_String_info入口,同時(shí),將把指向被拘留String對(duì)象(由解析該入口的進(jìn)程產(chǎn)生)的引用壓入操作數(shù)棧。
astore_1指令格式:astore_1
astore_1指令過(guò)程:
閱讀全文