第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么常量池從 1開始索引?為什么保留的 constant_pool[0] 條目?

為什么常量池從 1開始索引?為什么保留的 constant_pool[0] 條目?

ibeautiful 2023-02-23 14:44:23
根據(jù) JVM 規(guī)范(第 4.1 章“類文件結構”),聲明“常量池表的索引從 1 到常量池計數(shù) - 1”。我很好奇為什么他們要跳過 [0] 以及這個條目是用來做什么的。
查看完整描述

2 回答

?
互換的青春

TA貢獻1797條經(jīng)驗 獲得超6個贊

他們跳過索引 0,以便它可以用于您通常引用常量池條目但想要指示“無”的情況。它是相當于空指針的常量池。

索引 0 最顯著的用途是用于“捕獲所有”異常處理程序。異常處理程序可以指向它要處理的異常類的常量池條目,或者只使用索引 0 來捕獲所有內(nèi)容(這等同于 catching java/lang/Throwable)。在實踐中,編譯器將生成捕獲所有異常處理程序以實現(xiàn)finally、synchronized塊和 try 與資源的清理部分,等等。

索引 0 的其他用途包括:

  • 的超類java/lang/Object

  • 沒有名稱的參數(shù)的名稱

  • 不是另一個類成員的類的外部類(即頂級類、本地類和匿名類)

  • 匿名類的內(nèi)部名稱

  • 未立即包含在方法中的類的封閉方法

  • 沒有版本信息的模塊的版本信息

  • 沒有依賴信息的模塊的依賴


查看完整回答
反對 回復 2023-02-23
?
慕田峪4524236

TA貢獻1875條經(jīng)驗 獲得超5個贊

沒有保留條目?!癧I]indexed from 1”表示常量池中的第一個條目對應于索引 1,因此沒有任何 constant_pool[0]。相反,有一個保留索引0,可以確定它不是常量池中的有效索引。

該保留索引的記錄用途似乎很少見,但至少第 4.7.24 節(jié)指定了一種用途:方法參數(shù)的名稱由常量池中的索引表示,對于未命名的參數(shù),該索引為 0。

另請注意,該名稱constant_pool_count具有誤導性。constant_pool_count - 1規(guī)范明確指出常量池中只有條目(請參閱第 4.1 節(jié)頂部的結構聲明,并與其他一些成員進行比較)。


查看完整回答
反對 回復 2023-02-23
  • 2 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號