国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用Javap獲得不止于文檔的東西

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

  javadoc答應你基于Java代碼生成文檔,但是它主要是面向于Web客戶。幸運的是,存在另外的基于Java代碼生成文檔的方式,例如javap命令。
javap是一個Java類分解工具。它能夠將一個類分解為一個字節碼的描述,在這些描述中告訴了你在沒有進行實際的反編譯類之前的一個實現是什么樣的。和javac不同,javap使用class文件而不是源文件。這意味著你可以在沒有任何有效的源代碼的情況下在jar中的class上使用javap。

運行javap的標準方式是:

javap 〈classname〉

在命令行上,舉例如下:

javap java.lang.Object

這將輸出如下信息:

Compiled from Object.java
public class java.lang.Object {
public java.lang.Object( );
public final native java.lang.Class getClass( );
public native int hashCode( );
public boolean equals(java.lang.Object);
PRotected native java.lang.Object clone( ) throws java.lang.CloneNotSupportedException;
public java.lang.String toString( );
public final native void notify( );
public final native void notifyAll( );
public final native void wait(long) throws java.lang.InterruptedException;
public final void wait(long, int) throws java.lang.InterruptedException;
public final void wait( ) throws java.lang.InterruptedException;
protected void finalize( ) throws java.lang.Throwable;
static { };
}

分解代碼能得到一些有用的信息,例如通過javap ?Cc能知道Object.wait方法在執行時的情況。

Method void wait( )
0 aload_0
1 lconst_0
2 invokevirtual #16 〈Method void wait(long)〉
5 return

即使是對分解的代碼沒有很多的理解,也是很輕易看出Object.wait( )只是簡單的調用了Object.wait(long)。然而,傳遞到Object.wait(long)中的實際的值是看不到的。

分解代碼是一個有用的特性,但是javap最常用的用途還是用來快速的查看一個類可用的方法,從命令行使用javap經常是更簡單,即使是有源代碼和javadoc的情況下。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 城口县| 阿拉善盟| 屏南县| 浮山县| 高尔夫| 乐东| 高要市| 新平| 包头市| 霞浦县| 四子王旗| 浦县| 龙胜| 徐水县| 隆尧县| 类乌齐县| 扶风县| 西平县| 武义县| 资阳市| 宜兰县| 夹江县| 阿克陶县| 白城市| 瑞安市| 方城县| 安化县| 电白县| 百色市| 高要市| 万安县| 交口县| 突泉县| 商城县| 冕宁县| 建昌县| 玉环县| 连城县| 洛宁县| 东源县| 越西县|