网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.WebLogic6.0的一些使用经验.
.Axis序列化/反序列化器开发指南.
.Java设计模式之虚拟代理模式.
.Eclipse3.1中体验J2SE5.0之注释类.
.jboss配置 mysql数据库连接.
.Java、XML与数据库编程实践 (三).
.64位环境中的Java.
..NET vs Java.
.J2SE综合——对Final的一点认识.
.Jini技术基础结构.
.java 类型提升的约定.
.JGraph 5.8 发布.
.软件体系架构模式在J2EE中的应用.
.如何在JBuilder中配置JBoss开发E.
.Java程序员(SCJP)和开发员(SCJ.
.Struts开发指南之J2EE n层结构.
.群组通讯工具JGroups 2.2.9.
.Java开源项目Hibernate快速入门.
.J2ME编程最佳实践之联网开发.
.设计和优化MicrosoftWindowsCE.N.

使用Javap获得不止于文档的东西

发表日期:2008-1-5



  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的情况下。
上一篇:使用JavaServer Pages技术生成动态XML 人气:741
下一篇:使用java.util.Timer 人气:1098
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐