日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Method的invoke方法初步了解

發布時間:2024/1/1 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Method的invoke方法初步了解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java調試過程中,我們有時候會需要對JVM運行過程中哪出了問題進行調試,先從最基礎的了解。

?

我們都知道Java框架中方法的調用基本上都是通過反射機制來實施的,具體流程如下:

?

1、方法的調用先檢查AccessibleObject的override屬性是否是true,如果是則表明該方法是復寫的方法,可以忽略訪問權限的限制,直接訪問。如果不是則進行訪問權限檢測,用sun.reflect.Reflection的quickCheckMemberAccess方法先檢驗是不是public,如果不是則再用sun.reflect.Reflection.getCallerClass()方法獲得調用這個方法的Class,然后再做是否有權限訪問的校驗,檢驗之后會將結果緩存

?

2、sun.reflect.ReflectionFactory調用方法newMethodAccessor創建方法訪問器時,私有靜態變量noInflation如果為true則直接返回MethodAccessorGenerator創建的一個MethodAccessor,否則返回DelegatingMethodAccessorImpl類,并將DelegatingMethodAccessorImpl與一個NativeMethodAccessorImpl互相引用。但DelegatingMethodAccessorImpl執行invoke方法的時候又委托給NativeMethodAccessorImpl。

?

3、NativeMethodAccessorImpl的invkoe方法,NativeMethodAccessorImpl類中有一個計數器numInvocations,每調用一次方法自增加1一次,當比?ReflectionFactory的靜態常量inflationThreshold(15)大的時候,用MethodAccessorGenerator創建一個MethodAccessor,并把之前的DelegatingMethodAccessorImpl引用替換為現在新創建的MethodAccessorImpl(MethodAccessorGenerator創建的MethodAccessor強制類型轉換為MethodAccessorImpl),其中MethodAccessorGenerator使用了asm(assembly)字節碼動態加載技術,匯編命令有更高的執行效率。

4、Method類中的invoke方法拿到的MethodAccessor對象是被volatile變量。

總結:一個方法可以生成多個Method對象,但只有一個root對象,主要用于持有一個MethodAccessor對象,這個對象也可以認為一個方法只有一個,相當于是static的。因為Method的invoke是交給MethodAccessor執行的

我們在對加了@Test注解的方法進行debug時,JUnitCore類定義了一系列方法來啟動JUnit完成對測試類的反射執行,InvokeMethod類的evaluate方法會使用測試方法(FrameworkMethod類)的invokeExplosively調用該方法的返回結果。

?

備注:

1、

訪問權限當前類同一包子類其他包
public
protect×
friendly(默認)××
private×××

? ? ? ??

2、源碼中很多方法用native修飾符,這種修飾符表明方法是該方法的實現由非java語言實現(A native method is a Java method whose implementation is provided by non-java code.)。當被native修飾時,描述符塊會有一個指向該實現方法的指針。

?

3、參考:https://www.cnblogs.com/onlywujun/p/3519037.html,文中的Reflection.getCallerClass(1)方法在JDK8 版本已過時(加上@Deprecated注解),使用靜態本地方法getCallerClass()加上@CallerSensitive解決通過雙重反射提升權限的漏洞

總結

以上是生活随笔為你收集整理的Method的invoke方法初步了解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲美女操 | 久久久久久免费视频 | 在线播放日韩av | 成人片黄网站久久久免费 | 日本一区二区三区欧美 | 欧美一区二区三区久久 | 亚洲欧美日韩色 | 亚洲天堂一区 | 美女脱裤子打屁股 | 97看片吧 | 日韩精品视频观看 | 天天躁日日摸久久久精品 | 又黄又骚又爽 | 色批网站 | 国产偷人 | 久久免费精品国产 | 日韩中文字幕 | 亚洲人成人一区二区在线观看 | 少妇高潮av | 一级aaa毛片 | 日本一级免费视频 | 亚洲人交配视频 | 偷拍第1页| 无码人妻丰满熟妇精品区 | 成人羞羞在线观看网站 | 国产人成在线观看 | 日韩欧美的一区二区 | 日韩欧美在线视频播放 | 国产日韩欧美精品在线 | 天天看av | 毛片视频网站在线观看 | 射网站| 男人天堂1024| 毛片网站在线看 | 亚洲成人av免费在线观看 | 精品动漫一区二区 | 男裸体无遮挡网站 | 999午夜| 久久无码国产视频 | 国内自拍真实伦在线观看 | 欧美精品一区二区三区久久 | 国产91在线 | 亚洲 | 国产精品视频一区二区三 | 福利一区在线观看 | xxxwww在线观看 | 热九九精品| 91天堂网| 野花国产精品入口 | 久久免费视频一区 | 在线免费你懂的 | 亚洲双插 | 欧美一区二区三区婷婷月色 | 国产成人精品一区二区无码呦 | 图片区偷拍区小说区 | 国产香蕉在线观看 | 性色av蜜臀av色欲av | 日韩三级免费看 | www国产在线观看 | 在线观看免费高清视频 | 欧美精品系列 | aaa特级毛片 | 久久影院一区二区 | 伊人青青操 | 探花系列在线观看 | 欧美一区二区人人喊爽 | 欧美一卡二卡三卡 | www视频免费观看 | 亚洲精品乱码久久久久久久 | 欧美丰满熟妇bbbbbb百度 | 中文字幕乱码人妻一区二区三区 | 九九热最新网址 | 嫩草影院黄色 | 91网站观看| aaaaav| 黄色国产在线 | 女女调教被c哭捆绑喷水百合 | 免费看h网站| 俄罗斯美女一级爱片 | 朝桐光在线播放 | 波多av在线 | 日韩人妻精品一区二区三区视频 | 一级片成人 | 亚洲无限看| 中文字幕免费高清网站 | 操综合网| 福利视频不卡 | 黄色片特级 | 色偷偷免费 | 久久午夜夜伦鲁鲁一区二区 | av色图在线 | 亚洲精品乱码久久久久久 | 亚洲成人一二三区 | 久久人人爽天天玩人人妻精品 | 亚洲三级成人 | 日本不卡一区视频 | 日本资源在线 | 久久综合国产 | 国产亚洲自拍一区 | 伊人婷婷色 |