JAVA虚拟机精讲-第三章 字节码文件(三)

0x00 字节码是什么鬼

java前端编译器生成的文件,可以在jvm运行。

0x00 写了什么

总体格式

Class File format

type descriptor remark
u4 magic 0xCAFEBABE
u2 minor_version
u2 major_version
u2 constant_pool_count
cp_info constant_pool[cosntant_pool_count – 1] index 0 is invalid
u2 access_flags
u2 this_class
u2 super_class
u2 interfaces_count
u2 interfaces[interfaces_count]
u2 fields_count
field_info fields[fields_count]
u2 methods_count
method_info methods[methods_count]
u2 attributes_count
attribute_info attributes[attributes_count]

字节码的字段内容,具体看书,还有以下文章可以参考。

https://my.oschina.net/indestiny/blog/194260

http://www.blogjava.net/DLevin/archive/2011/09/05/358033.html

测试代码:

package test;
public class Test {
	public static void main(String[] args) {
		int a =1;
		System.out.println(a);
	}
}

javac 编译后的字节码:

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据