亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASM > 正文

用javap 反匯編幫你理解java特性

2019-11-18 13:37:42
字體:
來源:轉載
供稿:網友

  用javap 反匯編幫你理解java特性 (使用 javap 深入查看類文件)

作者: Builder.com
使用 javap 深入查看類文件

Java 開發人員熟悉在一個循環中使用StringBuffer 來代替串聯 String 對象能獲得最佳性能。然而,多數開發人員從來沒有比較兩種方法產生的字節代碼的區別。在 Java 開發工具包(JDK)中有一個叫做 javap 的工具可以告訴你為什么這樣做可以獲得最佳性能。



Javap 將一個類和它的方法的一些轉儲信息輸出到標準輸出。該工具不把代碼反編譯為 java 源代碼,但是它會把字節代碼反匯編成為由 Java 虛擬機規范定義的字節代碼指令。

在你需要查看編譯器為你或者給你做了什么的時候,或者你想要看一處代碼的改動對編譯后的類文件有什么影響的時候,javap 相當有用。

現在以我們前面提到的 StringBuffer 和 String 作為一個例子。下面是一個專門為例子設計的類,它有兩個方法,都返回一個由0到 n 的數字組成的 String,其中 n 由調用者提供。兩個方法唯一的區別在于一個使用 String 構建結果,另外一個使用 StringBuffer 構建結果。

public class JavapTip {
public static void main(String []args) {
}

PRivate static String withStrings(int count) {
String s = "";
for (int i = 0; i < count; i++) {
s += i;
}

return s;
}

private static String withStringBuffer(int count) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < count; i++) {
sb.append(i);
}

return sb.toString();
}
}

現在讓我們看看對這個類使用–c 選項運行 javap 的輸出。-c 選項告訴 javap 反匯編在類中碰到的字節代碼。

運行方式如下:

>javap -c JavapTip

此命令的輸出為:

Method java.lang.String withStrings(int)
0 ldc #2
2 astore_1
3 iconst_0
4 istore_2
5 goto 30
8 new #3
11 dup
12 invokespecial #4
15 aload_1
16 invokevirtual #5
19 iload_2
20 invokevirtual #6
23 invokevirtual #7
26 astore_1
27 iinc 2 1
30 iload_2
31 iload_0
32 if_icmplt 8
35 aload_1
36 areturn

Method java.lang.String withStringBuffer(int)
0 new #3
3 dup
4 invokespecial #4
7 astore_1
8 iconst_0
9 istore_2
10 goto 22
13 aload_1
14 iload_2
15 invokevirtual #6
18 pop
19 iinc 2 1
22 iload_2
23 iload_0
24 if_icmplt 13
27 aload_1
28 invokevirtual #7
31 areturn

假如你以前沒有看過 Java 匯編器,那么這個輸出對你來說就會比較難懂,但是你應該可以看到 withString 方法在每次循環的時候都新創建了一個 StringBuffer 實例。然后它將已有的 String 的當前值追加到 StringBuffer 上,然后追加循環的當前值。最后,它對 buffer 調用 toString 并將結果賦給現有的 String 引用。

withStringBuffer 方法與這個方法正好相反,在每次循環的時候 withStringBuffer 只調用現有 StringBuffer 的 append 方法,沒有創建新的對象,也沒有新的 String 引用。

在這種情況下,我們已經知道了使用 StringBuffer 代替 String 是一種好的做法,但是假如我們不知道呢?那么 javap 可以幫助我們找到答案。在這里你可以看到更具體的關于String,StringBuffer 的解釋

你并不會經常需要一個 Java 反匯編器,但是當你需要的時候,知道你自己的機器已經有一個并且用法相當簡單的反匯編器當然是一件好事。假如你感愛好,看書看看 javap 的其它選項——或許你會發現在你的環境中需要的特性。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
全亚洲最色的网站在线观看| 91欧美精品成人综合在线观看| 国产日韩中文字幕| 日韩av一区二区在线| 久久男人av资源网站| 欧美电影在线免费观看网站| 91精品国产高清久久久久久91| 欧美美女操人视频| 尤物九九久久国产精品的特点| 最近免费中文字幕视频2019| 日本欧美一级片| 午夜免费久久久久| 日韩电影中文字幕在线观看| 久久久女人电视剧免费播放下载| 亚洲第一页在线| 欧美乱人伦中文字幕在线| 日韩高清欧美高清| 亚洲欧美日韩中文在线制服| 91精品久久久久久久久久另类| 精品日本美女福利在线观看| 日韩一二三在线视频播| 高清一区二区三区日本久| 日韩av一区二区在线| 久久久久久国产精品美女| 日韩中文字幕亚洲| 高清欧美性猛交xxxx黑人猛交| 日韩精品极品视频| 亚洲精品国产美女| 国产成人高清激情视频在线观看| 欧美肥老妇视频| 最近更新的2019中文字幕| 57pao国产精品一区| 亚洲欧美在线看| 欧美国产一区二区三区| 欧美久久久精品| 日韩中文字幕第一页| 国产精品999| 国产成人中文字幕| 日韩精品中文字幕久久臀| 伊人久久大香线蕉av一区二区| 亚洲欧美制服第一页| 精品国产福利在线| 欧美在线播放视频| 中文字幕欧美精品在线| 亚洲天堂男人天堂| 欧美大片网站在线观看| 中文字幕亚洲欧美日韩在线不卡| 久久久99久久精品女同性| 色婷婷av一区二区三区久久| 国产日韩在线一区| 久久九九有精品国产23| 午夜精品理论片| 国产69精品久久久久久| 欧美精品亚州精品| 国产中文日韩欧美| 一区二区三区高清国产| 精品国产欧美一区二区三区成人| 亚洲国产精品成人va在线观看| 精品国产区一区二区三区在线观看| 亚洲天堂成人在线视频| 欧美亚洲另类激情另类| 日本一区二区在线免费播放| 国产丝袜精品第一页| 欧美激情xxxx| 日本韩国在线不卡| 欧美一区二区影院| 一区二区欧美日韩视频| 亚洲第一中文字幕在线观看| 国产精品久久久久久久av电影| 精品久久久久久久久久| 欧美xxxx18性欧美| 亚洲欧美一区二区三区久久| 色综合色综合网色综合| 国产精品免费久久久久久| 久久精品99久久久香蕉| 亚洲激情视频网| 成人黄色网免费| 在线视频一区二区| 日韩精品极品在线观看播放免费视频| 久久影院模特热| 亚洲性生活视频在线观看| 色偷偷亚洲男人天堂| 日韩在线高清视频| 国产在线视频2019最新视频| 国产视频在线观看一区二区| 亚洲男人天堂2024| 日韩精品极品视频| 高潮白浆女日韩av免费看| 亚洲精品国产精品国自产观看浪潮| 亚洲精品中文字| 久久夜精品va视频免费观看| 欧美激情精品久久久久久蜜臀| 国产成人综合久久| 亚洲色无码播放| 国产视频自拍一区| 久久中文字幕国产| 亚洲女人天堂视频| 91精品国产色综合久久不卡98口| 亚洲人成电影网站色…| 在线成人免费网站| 亚洲精品网址在线观看| 久热在线中文字幕色999舞| 九九热在线精品视频| 亚洲美女动态图120秒| 91久久精品国产91久久性色| 国产乱肥老妇国产一区二| 性色av香蕉一区二区| 久久久久久成人| 538国产精品视频一区二区| 成人免费视频a| 国内精品久久久久久中文字幕| 精品福利在线观看| 亚洲福利在线看| 日本aⅴ大伊香蕉精品视频| 欧美另类交人妖| 国产精品久久久久久一区二区| 亚洲精品国精品久久99热一| 日韩欧美高清在线视频| 91九色在线视频| 国产精品久久久久久久久借妻| 欧美日韩另类在线| 欧美黑人极品猛少妇色xxxxx| 国产美女主播一区| www.欧美精品| 精品日本美女福利在线观看| 欧洲s码亚洲m码精品一区| 欧美孕妇孕交黑巨大网站| 深夜福利日韩在线看| 自拍偷拍亚洲区| 51视频国产精品一区二区| 伊人伊成久久人综合网小说| 理论片在线不卡免费观看| 国产精品白嫩初高中害羞小美女| 亚洲免费av片| 成人免费视频xnxx.com| 色妞色视频一区二区三区四区| 91精品国产91久久久久久不卡| 久久久噜噜噜久噜久久| 国产精品高清在线观看| 欧美电影在线观看高清| 欧美性xxxxx| 国产精品444| 一本色道久久88综合亚洲精品ⅰ| 亚洲欧洲第一视频| 日韩精品免费综合视频在线播放| 久久噜噜噜精品国产亚洲综合| 国产精品久久久av久久久| 国产精品精品一区二区三区午夜版| 国产精品欧美日韩一区二区| 国产午夜精品理论片a级探花| 69视频在线播放| 日韩精品日韩在线观看| 亚洲精品久久久久久下一站| 成人激情视频免费在线| 国产精品中文字幕久久久| 日本中文字幕成人| 国产精品久久久久7777婷婷| 国产盗摄xxxx视频xxx69| 日韩欧美国产免费播放| 亚洲色图第一页| 欧美成人亚洲成人| 成人av资源在线播放| 日韩有码视频在线| 亚洲国产欧美一区二区丝袜黑人|