java虚拟机分析-字节码解析
2015-11-15 12:03
375 查看
难道我就这样过完这一生!
java类编译成class文件。以16机制的形式存在
魔数:CAFEBABE 表名这是一个java字节码文件。
java版本号:Minor version,major version
常量池大小:两个字节
头部为3个字节(常量类型,所属类,内容)
Methodref class #4 name-and-type #15 代表这个一个方法,她属于#4类,方法名与返回值为#15
Fieldred class #16 name-and-type #17 代表这个一个属性,她属于#16类,属性名和类型为#17
String #18 代表这是一个String常量,指向#18
Class name #19 代表这是一个类型,指向#19
UTF length=6
<init>
代表这是一个UTF类型常量,占6个字节。也代表着构造函数。
UTF length=3
()V
代表返回值类型为void
UTF length=4
Code
代表这段是代码
UTF length=15
LineNumberTable
代表这是行号表
UTF length=4
main
代表这是main函数名
UTF length=22
([Ljava/lang/String;)V
代表函数的参数列表为String类型数组,然后返回值为void,其中[代表数组,分号代表结束,java/lang/String代表参数类型,L代表,V代表返回值为void
UTF length=10
SourceFile
UTF length=12
Message.java
NameAndType name #7 descriptor #8
代表这是一个描述名字与属性的,可以用来描述属性,方法
UTF length=23
helloworld!
这里代表String类型的常量值
类信息:常量列表后面就是关于这个类本身的信息描述了。如这个类的访问控制,名称和类型,以及是否有父类或是否实现了某些接口等描述信息。
access_flags=33
this=#6
super=#4
类访问控制的两个字节中实际上只使用了5bit,其他的bit还没有定义,这5个bit中第一个bit表示的是该类是否为public(1表示为public类,否则为private类)。所以对类的访问修饰只有两种,要么public要么private
java类编译成class文件。以16机制的形式存在
魔数:CAFEBABE 表名这是一个java字节码文件。
java版本号:Minor version,major version
常量池大小:两个字节
头部为3个字节(常量类型,所属类,内容)
Methodref class #4 name-and-type #15 代表这个一个方法,她属于#4类,方法名与返回值为#15
Fieldred class #16 name-and-type #17 代表这个一个属性,她属于#16类,属性名和类型为#17
String #18 代表这是一个String常量,指向#18
Class name #19 代表这是一个类型,指向#19
UTF length=6
<init>
代表这是一个UTF类型常量,占6个字节。也代表着构造函数。
UTF length=3
()V
代表返回值类型为void
UTF length=4
Code
代表这段是代码
UTF length=15
LineNumberTable
代表这是行号表
UTF length=4
main
代表这是main函数名
UTF length=22
([Ljava/lang/String;)V
代表函数的参数列表为String类型数组,然后返回值为void,其中[代表数组,分号代表结束,java/lang/String代表参数类型,L代表,V代表返回值为void
UTF length=10
SourceFile
UTF length=12
Message.java
NameAndType name #7 descriptor #8
代表这是一个描述名字与属性的,可以用来描述属性,方法
UTF length=23
helloworld!
这里代表String类型的常量值
类信息:常量列表后面就是关于这个类本身的信息描述了。如这个类的访问控制,名称和类型,以及是否有父类或是否实现了某些接口等描述信息。
access_flags=33
this=#6
super=#4
类访问控制的两个字节中实际上只使用了5bit,其他的bit还没有定义,这5个bit中第一个bit表示的是该类是否为public(1表示为public类,否则为private类)。所以对类的访问修饰只有两种,要么public要么private
相关文章推荐
- Java中如何利用gson解析数据
- 两个java命令行处理工具
- Eclipse设置编码问题
- java之Class Loading Architecture --《Java_Security_2nd_Edition》
- JAVA处理CSV格式文件-javacsv.jar
- Eclipse debug 查看变量
- Java HMAC-SHA1加密算法的实现
- java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.ConditionalTagSupport
- 在struts2框架上上传多张图片
- JFinal资料
- MyEclipse项目自动部署
- java领域的即时通信(openfire+spark+smack)
- EJB与Spring的全面比较与JavaBean的不同
- 用Ant实现java项目的自动构建和部署
- ParentChildTest.java
- 释放模式-JDK7之后带资源的try构造
- java_12-24-part one
- java多态与异常处理——动手动脑
- 关于Servlet安全策略和GlassFish中的相关设置
- 在struts2框架下做下载功能