摘要: 歡迎來(lái)到“Under The Hood”第七期。本期我們介紹JVM處理finally子句的方式及相關(guān)字節(jié)碼。你可能需要閱讀往期的文章才能更好的理解本文。
finally子句
JVM執(zhí)行Java字節(jié)碼時(shí),它有幾種方式可以退出一個(gè)代碼塊(花括號(hào)中間的語(yǔ)句)。其中之一,就是簡(jiǎn)單的執(zhí)行完其中所有的語(yǔ)句,然后退出代碼塊。第二種,JVM可能會(huì)在代碼塊中間的任何一處,遇到像break,continue,return之類的語(yǔ)句,強(qiáng)制它跳出該代碼塊。第三種,JVM可能會(huì)在執(zhí)行過程中,出現(xiàn)了異常,然后它跳轉(zhuǎn)到匹配的catch子句,或者沒有找到相應(yīng)的catch子句,直接退出當(dāng)前線程。由于單個(gè)代碼塊有如此多的潛在退出點(diǎn)(exit point),擁有一個(gè)簡(jiǎn)單的方式來(lái)表達(dá)“無(wú)論代碼塊以什么方式退出,有些事情總能發(fā)生”是很值得的。然后就有了try-finally子句。 閱讀全文
摘要: 歡迎來(lái)到“Under The Hood”第六期。本期我們介紹JVM處理異常的方式,包括如何拋出和捕獲異常及相關(guān)的字節(jié)碼指令。但本文不會(huì)討論finally子句,這是下期的主題。你可能需要閱讀往期的文章才能更好的理解本文。
異常處理
在程序運(yùn)行時(shí),異常讓你可以平滑的處理意外狀況。為了演示JVM處理異常的方式,考慮NitPickyMath類,它提供對(duì)整數(shù)進(jìn)行加,減,乘,除以及取余的操作。 閱讀全文
異常處理
在程序運(yùn)行時(shí),異常讓你可以平滑的處理意外狀況。為了演示JVM處理異常的方式,考慮NitPickyMath類,它提供對(duì)整數(shù)進(jìn)行加,減,乘,除以及取余的操作。 閱讀全文
摘要: 歡迎來(lái)到“Under The Hood”第五期。本期我們來(lái)看看JVM中處理對(duì)象和數(shù)組的字節(jié)碼。你可能需要閱讀往期的文章才能更好的理解本文。 閱讀全文
摘要: JVM支持IEEE-754浮點(diǎn)數(shù)標(biāo)準(zhǔn)(1985)。該標(biāo)準(zhǔn)定義了32位和64位浮點(diǎn)數(shù)的格式,以及在此之上的各種運(yùn)算。在JVM中,浮點(diǎn)運(yùn)算是基于32位float數(shù)和64位double數(shù)的。對(duì)每個(gè)操作float數(shù)的字節(jié)碼,都有一個(gè)對(duì)應(yīng)的操作double數(shù)的版本。 閱讀全文