摘要:操作決定對象是否是指定類型的實例指令格式指令碼指令執(zhí)行前后的棧頂狀態(tài)描述是線程棧頂部彈出的類型的引用無符號數(shù)和共同構(gòu)建成一個索引指向運行時常量池中的類如果為如果為指定類數(shù)組接口的實例則否則舉例說明如果是所指向的類為指定類在下列情況下如果是一
instanceof 操作:
決定對象是否是指定類型的實例指令格式:
instanceof indexbyte1 indexbyte2指令碼:
instanceof = 193 (0xc1)指令執(zhí)行前后的棧頂狀態(tài):
..., objectref → ..., result描述:
objectref是線程棧頂部彈出的類型的引用,無符號數(shù)indexbyte1和indexbyte2共同構(gòu)建成一個索引(indexbyte1<<8|indexbyte2)指向運行時常量池中的類.
如果objectref為null,result=0;
如果objectref為指定類(resolved class),數(shù)組,接口的實例,則result=1
否則result=0;
如果S是objectref所指向的類,T為指定類(resolved class),在下列情況下result=1:
如果S是一個class:
如果T為class,則S extends T,或者S等于T
如果T為interface,則S implements T
如果S是一個class:
如果T為interface,則T為Object
如果T為interface,則S extends T,或者S等于T
如果S是一個array,SC[],數(shù)組元素為SC:
如果T為class,則T為Object
如果T為interface,則T 為數(shù)組的子類(見JLS4.10.3)
如果T是一個array,TC[],數(shù)組元素為TC
TC和SC是相同的原始類型
TC和SC都是class,SC可以在運行時轉(zhuǎn)換為TC
JVM具體的實現(xiàn)論文Fast subtype checking in the HotSpot JVM
問答請教一個share/vm/oops下的代碼做fast subtype check的問題
參考:
1.JLS
2.JVM
3.知乎
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/67222.html
小編寫這篇文章的主要目的,是講述一下關(guān)于Python的一些小技巧,包括類方法與靜態(tài)方法之間,存在一些什么區(qū)別呢?怎么從真正的意義上去理解關(guān)于其不同之間的區(qū)別呢?下面就給大家詳細(xì)的解答下。 前言 在python的類中不僅可以有methods,還可以有變量,這些變量稱為類屬性,例如如下代碼中Book類的TYPES即為類屬性?! ☆愔械姆椒ǚ譃?類: 1.實例方法instance method...
摘要:指定及端口創(chuàng)建實例默認(rèn)情況下系統(tǒng)會自動分配一個及一個端口用來訪問數(shù)據(jù)庫??缈捎脜^(qū)指同類服務(wù)的不同節(jié)點部署在至少三個以上的可用區(qū),可保證可用區(qū)級故障發(fā)生時服務(wù)繼續(xù)可用,但性能比同可用區(qū)有所下降。實例本篇目錄創(chuàng)建TiDB實例查看TiDB實例列表查看TiDB實例詳情刪除TiDB實例創(chuàng)建TiDB實例點擊【創(chuàng)建實例】選擇基礎(chǔ)配置版本根據(jù)需要選擇配置版本,默認(rèn)選擇旗艦版。 不同版本的說明請參考實例類型。...
大家在搭建網(wǎng)站時,無可避免的必須設(shè)計方案完成頁面的用戶系統(tǒng),我們應(yīng)該完成包含新用戶注冊、賬號登錄、用戶認(rèn)證、銷戶等服務(wù),Django做為完美主義者最終架構(gòu),它默認(rèn)設(shè)置使用auth_user表來存儲用戶數(shù)據(jù)信息,下面我們就來看看Django多對多使用through自定中間表 多對多中間表詳細(xì)說明 眾所周知針對ManyToMany字段,Django使用的是下一張中間表的形式。依據(jù)這下一張表,來...
知道嗎?在布達佩斯2022 JSConf會議上,tc39(ES標(biāo)準(zhǔn)委員會)成員Gil Tayar介紹了一份當(dāng)前仍處于stage 1階段的提案 ——Type Annotations,意在讓原生JS支持類型注解?! 『芏喱F(xiàn)在盼到了,在.ts文件將后綴改為.js后就能直接在瀏覽器中運行?! ∫环輙c39提案通常會經(jīng)歷5個階段: stage 0:被提出 stage 1:接受審議 stage 2:...
我們先說下,npm版本號定義 版本格式:X.Y.Z[-string]其含義為: X:主版本號 Y:次版本號 Z:修正版本號 string: 先行版本號或版本編譯信息 舉個例子: 6.3.2-alpha的含義為: 主版本號6,有6次不可向下兼容的更新迭代?! 〈伟姹咎?,有3次小的功能迭代。6.*.* <=6.3.2的依賴聲明,都可以安裝此新包?! ⌒拚姹咎?,有2次bu...
閱讀 1916·2021-11-18 13:21
閱讀 2045·2021-10-18 13:30
閱讀 1639·2021-10-12 10:13
閱讀 1001·2021-10-09 09:43
閱讀 5532·2021-09-22 15:13
閱讀 3640·2021-08-11 10:22
閱讀 996·2019-08-30 13:46
閱讀 3577·2019-08-30 13:21