亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

用Eclipse插件Bytecode Outline來(lái)查看Java字節(jié)碼

系統(tǒng) 1731 0
  1. ? 在遇到一些小問(wèn)題的時(shí)候我們經(jīng)常會(huì)使用Javap反編譯取得字節(jié)碼來(lái)分析,雖然Javap能完成這個(gè)工作,但是有兩個(gè)缺點(diǎn),一方面操作麻煩,需要很多步驟,一方面沒(méi)有文檔注釋,對(duì)新手來(lái)說(shuō)看起字節(jié)碼來(lái)比較麻煩。??
  2. ?????這里推薦一個(gè)工具,Bytecode?Outline?.它是Eclipse的插件,可以把當(dāng)前的正在編輯Java的文件或者 class 文件直接顯示出其相應(yīng)的字節(jié)碼出來(lái),而且可以進(jìn)行兩個(gè)Java文件的字節(jié)碼比較或者兩個(gè) class 文件的字節(jié)碼比較或一個(gè)Java文件與一個(gè) class 文件進(jìn)行字節(jié)碼的比較。??
  3. 安裝方法:和其它插件類似,可以拷貝到plugin下也可以link方式安裝??
  4. 下載地址:http: //forge.objectweb.org/projects/asm/ ??
  5. 注意:因?yàn)锽ytecode?Outline的運(yùn)行需要ASM?Framework,所以也要下載這個(gè)文件??
  6. 對(duì)應(yīng)的兩個(gè)文件名為:??
  7. org.objectweb.asm_2. 2.2 .jar??
  8. de.loskutov.BytecodeOutline_2. 1.0 .jar??
  9. 也可以用update的方式來(lái)安裝,好處是可以隨時(shí)更新,地址如下:??
  10. http: //download.forge.objectweb.org/eclipse-update/ ??
  11. ????試了一下,不知道什么原因,第一種方法失敗,只有使用第二種方法了,不過(guò)也很方便,在eclipse下安裝.點(diǎn)擊help->software?update->find?and?install...?后面的就按一步步安裝就可以了.??
  12. ??
  13. ????安裝完了,windows-->showview-->other-->點(diǎn)開(kāi)Java的樹(shù)-->選擇Bytecode?,同樣的方法選擇Bytecode?Reference?.下面看一個(gè)典型的String的反編譯例子:??
  14. public ? static ? void ?main(String[]?args){??
  15. ???String?m= "mango" ;??
  16. ???String?s= "abc" +m+ "def" + 47 ;??
  17. ???System.out.println(s);??
  18. }??
  19. 反編譯后:??
  20. //?access?flags?9 ??
  21. public ? static ?main(String[])?:? void ??
  22. ???L0?( 0 )??
  23. ????LINENUMBER? 6 ?L0??
  24. ????LDC? "mango" ??
  25. ????ASTORE? 1 :?m??
  26. ???L1?( 3 )??
  27. ????LINENUMBER? 7 ?L1??
  28. ????NEW?StringBuilder??
  29. ????DUP??
  30. ????LDC? "abc" ??
  31. ????INVOKESPECIAL?StringBuilder.<init>(String)?:? void ??
  32. ????ALOAD? 1 :?m??
  33. ????INVOKEVIRTUAL?StringBuilder.append(String)?:?StringBuilder??
  34. ????LDC? "def" ??
  35. ????INVOKEVIRTUAL?StringBuilder.append(String)?:?StringBuilder??
  36. ????BIPUSH? 47 ??
  37. ????INVOKEVIRTUAL?StringBuilder.append( int )?:?StringBuilder??
  38. ????INVOKEVIRTUAL?StringBuilder.toString()?:?String??
  39. ????ASTORE? 2 :?s??
  40. ???L2?( 16 )??
  41. ????LINENUMBER? 8 ?L2??
  42. ????GETSTATIC?System.out?:?PrintStream??
  43. ????ALOAD? 2 :?s??
  44. ????INVOKEVIRTUAL?PrintStream.println(String)?:? void ??
  45. ???L3?( 20 )??
  46. ????LINENUMBER? 9 ?L3??
  47. ????RETURN??
  48. ???L4?( 22 )??
  49. ????LOCALVARIABLE?args?String[]?L0?L4? 0 ??
  50. ????LOCALVARIABLE?m?String?L1?L4? 1 ??
  51. ????LOCALVARIABLE?s?String?L2?L4? 2 ??
  52. ????MAXSTACK?=? 3 ??
  53. ????MAXLOCALS?=? 3 ??
  54. ??
  55. ??
  56. 通過(guò)反編譯后的字節(jié)碼,我們就會(huì)更加深刻理解String中的 "+" 操作過(guò)程了.??
  57. 相信有了它,對(duì)以后的學(xué)習(xí)一定會(huì)有很大的幫助~ ?
    ?




用Eclipse插件Bytecode Outline來(lái)查看Java字節(jié)碼


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产五月色婷婷六月丁香视频 | 日本又黄又爽又色的免费视频 | 奇米影视77777 | 免费观看一级欧美在线视频 | 精品国产免费久久久久久婷婷 | 天天干天天干天天天天天天爽 | 国内精品久久久久不卡 | 久久国产精品999 | 99视频在线免费看 | 成人国产欧美精品一区二区 | 亚洲欧美色图片 | 亚洲欧美日韩中文v在线 | 一级片一级毛片 | 色婷婷久久久swag精品 | 奇米影视亚洲春色 | 亚洲图片另类图片 | 久久精品啪啪嗷嗷叫 | 伊人久久青草青青综合 | 国产高清免费午夜在线视频 | 久久亚洲精品国产亚洲老地址 | 福利视频二区 | 香蕉视频在线观看黄 | 精品影视 | 免费视频网站一级人爱视频 | 日韩第1页 | 奇米第四色在线观看 | 五月天亚洲视频 | 久国产精品久久精品国产四虎 | 国产视频国产 | 久久精品国产四虎 | 成人亚洲精品7777 | 玖玖色在线 | 青青久草 | 天天干天天草天天 | 久久精品一 | 国产在线精品香蕉麻豆 | 九九视频高清视频免费观看 | 免费不卡中文字幕在线 | 视频一区国产精品 | 欧美日韩北条麻妃一区二区 | 一级做a爱片特黄在线观看 一级做a爱片特黄在线观看免费看 |