最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

分析那些不講武德的SDK(構(gòu)造使用規(guī)范)

 更新時(shí)間:2023年05月17日 11:08:45   作者:shysh  
這篇文章主要為大家介紹了盤點(diǎn)分析那些不講武德的SDK(構(gòu)造規(guī)范)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

問題發(fā)現(xiàn)

今天發(fā)生了一件事,令我非常郁悶,就是我在使用一個(gè)SDK時(shí),當(dāng)我調(diào)用他的方法時(shí),提示我方法中的參數(shù)var1, var2如下:

// 方法是我隨意構(gòu)造的,不代表真實(shí)方法
excuseMe(String var1, String var2);

當(dāng)時(shí)我就想對(duì)提供SDK的這位仁兄說一句,年輕人不講武德,我勸你耗子尾汁。

對(duì)于這樣的API,真的我是看都不想看,你給我整個(gè)var0,var1我哪知道這參數(shù)到底代表啥,難道我們之間還有摩斯密碼,我需要去解密一下,兄臺(tái)大家都是開發(fā),何苦自相殘殺。

既然我已經(jīng)受到了這段代碼的困擾,那么不如我們研究一下為什么會(huì)有這種情況發(fā)生。

這種情況發(fā)生的原因其實(shí)是因?yàn)镃lass文件中方法表的Code屬性中有一個(gè)屬性沒生成,這個(gè)屬性是LocalVariableTable。

LocalVariableTable結(jié)構(gòu)如下:

LocalVariableTable用來描述棧幀中的局部變量表的變量和與Java源碼中定義的變量之間的關(guān)系,

關(guān)于attribute_name_index和attribute_length的含義如果還有不懂的讀者可以建議將我之前講解的Class文件相關(guān)文章閱讀一下。

  • local_variable_table_length:local_variable_info的個(gè)數(shù)
  • local_variable_info:一個(gè)棧幀與源碼中的局部變量的關(guān)聯(lián)關(guān)系

local_variable_info的結(jié)構(gòu)如下:

  • start_pc:局部變量開始的字節(jié)碼偏移量
  • length:局部變量作用范圍的覆蓋長(zhǎng)度
  • name_index:局部變量名稱(CONSTANT_Utf8_info)在常量池中的索引
  • descriptor_index:局部變量的(CONSTANT_Utf8_info)描述在常量池中的索引
  • index:局部變量在棧幀的局部變量表中的Slot的位置,如果數(shù)據(jù)類型是64位,那么他所占用的Slot是index和index+1
public class ClassTest {
    private Integer number;
    public void excuseMe(String from, String to) {
        number = 1;
        System.out.println("excuse me");
    }
}

我們可以通過上述這段代碼來研究一下我們開篇的問題:

javac ClassTest.java

開篇的問題

我們看一下編譯出來的Class文件,execuseMe方法里面的參數(shù)為var1,var2,出現(xiàn)了我們開篇的問題

那么我們?cè)趺唇鉀Q這個(gè)問題,其實(shí)只需要在編譯的時(shí)候加入一個(gè)參數(shù)-g:vars

javac -g:vars ClassTest.java

可以看出加入這個(gè)參數(shù)后,Class文件中的變量已經(jīng)具有含義了from,to

我們?cè)偻ㄟ^一下命令看一下LocalVariableTable這個(gè)屬性有沒有生成

javap -v ClassTest

可以看到LocalVariableTable屬性已經(jīng)生成到excuseMe方法的Code屬性中。

以上就是分析那些不講武德的SDK(構(gòu)造規(guī)范)盤點(diǎn)解析的詳細(xì)內(nèi)容,更多關(guān)于SDK構(gòu)造規(guī)范的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • eclipse上配置Maven的圖文教程(推薦)

    eclipse上配置Maven的圖文教程(推薦)

    下面小編就為大家分享一篇eclipse上配置Maven的圖文教程(推薦),具有很好的參考價(jià)值。希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • 詳解Java線程池和Executor原理的分析

    詳解Java線程池和Executor原理的分析

    這篇文章主要介紹了詳解Java線程池和Executor原理的分析的相關(guān)資料,這里提供實(shí)例及分析原理幫助大家理解這部分知識(shí),需要的朋友可以參考下
    2017-07-07
  • Red?Hat?安裝JDK與IntelliJ?IDEA的詳細(xì)過程

    Red?Hat?安裝JDK與IntelliJ?IDEA的詳細(xì)過程

    YUM是基于Red Hat的Linux發(fā)行版的一個(gè)強(qiáng)大而用戶友好的包管理工具,這篇文章主要介紹了Red?Hat安裝JDK與IntelliJ IDEA,需要的朋友可以參考下
    2023-08-08
  • SpringAOP如何修改請(qǐng)求參數(shù)列表

    SpringAOP如何修改請(qǐng)求參數(shù)列表

    這篇文章主要介紹了SpringAOP如何修改請(qǐng)求參數(shù)列表問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 詳解Spring的@Value作用與使用場(chǎng)景

    詳解Spring的@Value作用與使用場(chǎng)景

    這篇文章主要介紹了詳解Spring的@Value作用與使用場(chǎng)景,Spring為大家提供許多開箱即用的功能,@Value就是一個(gè)極其常用的功能,它能將配置信息注入到bean中去,需要的朋友可以參考下
    2023-05-05
  • java的Builder原理和實(shí)現(xiàn)詳解

    java的Builder原理和實(shí)現(xiàn)詳解

    大家好,本篇文章主要講的是java的Builder原理和實(shí)現(xiàn)詳解,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • SpringBoot自定義FailureAnalyzer詳解

    SpringBoot自定義FailureAnalyzer詳解

    這篇文章主要介紹了SpringBoot自定義FailureAnalyzer詳解,FailureAnalyzer是一種在啟動(dòng)時(shí)攔截?exception?并將其轉(zhuǎn)換為?human-readable?消息的好方法,包含在故障分析中,需要的朋友可以參考下
    2023-11-11
  • Java中static靜態(tài)變量的初始化完全解析

    Java中static靜態(tài)變量的初始化完全解析

    static所聲明的變量在Java中有一個(gè)初始化的先后順序,帶著這個(gè)問題接下來我們就來進(jìn)行Java中static靜態(tài)變量的初始化完全解析:
    2016-06-06
  • Eclipse中創(chuàng)建Web項(xiàng)目最新方法(2023年)

    Eclipse中創(chuàng)建Web項(xiàng)目最新方法(2023年)

    在Java開發(fā)人員中,最常用的開發(fā)工具應(yīng)該就是Eclipse,下面這篇文章主要給大家介紹了關(guān)于Eclipse中創(chuàng)建Web項(xiàng)目2023年最新的方法,需要的朋友可以參考下
    2023-09-09
  • C++和Java命令行繪制心形圖案

    C++和Java命令行繪制心形圖案

    這篇文章主要為大家詳細(xì)介紹了C++和Java命令行繪制心形圖案,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04

最新評(píng)論

台安县| 康马县| 红桥区| 富民县| 南溪县| 长泰县| 东山县| 冕宁县| 河津市| 甘肃省| 佛教| 万全县| 方城县| 高州市| 高雄市| 渭南市| 湾仔区| 津南区| 什邡市| 岱山县| 宜兰县| 阿拉善右旗| 夏邑县| 台东县| 宣化县| 吉林市| 昌宁县| 太湖县| 芦山县| 福清市| 南江县| 封丘县| 太和县| 民县| 高密市| 汕头市| 那坡县| 崇州市| 天柱县| 青神县| 许昌县|