本篇博文描述的是对一个很简单的java文件的对应的class文件的二进制分析.
要分析class文件的二进制格式,必须了解对应版本的jvm specification.
由于jvm specification中关于class文件的内容有点多,所以这里不在描述相同的内容.
说明:本篇博文中设计的class文件对应的jvm specification版本是 jvm 8.
java文件:SimpleClassDemo1.java
package com.rocky.jvm.classfile; /** * Created by rocky on 14-12-23. */ public class SimpleClassDemo1 { }
对应的class文件二进制内容:SimpleClassDemo1.class (16进制表示)
cafe babe 0000 0034 0010 0a00 0300 0d07 000e 0700 0f01 0006 3c69 6e69 743e 0100 0328 2956 0100 0443 6f64 6501 000f 4c69 6e65 4e75 6d62 6572 5461 626c 6501 0012 4c6f 6361 6c56 6172 6961 626c 6554 6162 6c65 0100 0474 6869 7301 002a 4c63 6f6d 2f72 6f63 6b79 2f6a 766d 2f63 6c61 7373 6669 6c65 2f53 696d 706c 6543 6c61 7373 4465 6d6f 313b 0100 0a53 6f75 7263 6546 696c 6501 0015 5369 6d70 6c65 436c 6173 7344 656d 6f31 2e6a 6176 610c 0004 0005 0100 2863 6f6d 2f72 6f63 6b79 2f6a 766d 2f63 6c61 7373 6669 6c65 2f53 696d 706c 6543 6c61 7373 4465 6d6f 3101 0010 6a61 7661 2f6c 616e 672f 4f62 6a65 6374 0021 0002 0003 0000 0000 0001 0001 0004 0005 0001 0006 0000 002f 0001 0001 0000 0005 2ab7 0001 b100 0000 0200 0700 0000 0600 0100 0000 0600 0800 0000 0c00 0100 0000 0500 0900 0a00 0000 0100 0b00 0000 0200 0c
分析结果如下: (直接帖文字会变形,所以截的图.这里提供下载:http://download.csdn.net/detail/u012358984/8319813)
时间: 2024-11-01 18:41:31