读书人

class资料分析

发布时间: 2013-10-08 15:23:37 作者: rapoo

class文件分析

本文通过分析一个简单java类文件的字节码,希望借此能快速了解java类文件格式

为了分析字节码,必须有一个整体的格式如下:

class资料分析


以上面的表作为分析的基础,开始行动!


一段简单的java代码

123456789package org.kaka.clazz; public class TestClass { private int m; public int inc(){ return m+1; }}


查看字节码

123456789101112131415161718192000000000 ca fe ba be 00 00 00 32 00 13 0a 00 04 00 0f 09 |.......2........|00000010 00 03 00 10 07 00 11 07 00 12 01 00 01 6d 01 00 |.............m..|00000020 01 49 01 00 06 3c 69 6e 69 74 3e 01 00 03 28 29 |.I...<init>...()|00000030 56 01 00 04 43 6f 64 65 01 00 0f 4c 69 6e 65 4e |V...Code...LineN|00000040 75 6d 62 65 72 54 61 62 6c 65 01 00 03 69 6e 63 |umberTable...inc|00000050 01 00 03 28 29 49 01 00 0a 53 6f 75 72 63 65 46 |...()I...SourceF|00000060 69 6c 65 01 00 0e 54 65 73 74 43 6c 61 73 73 2e |ile...TestClass.|00000070 6a 61 76 61 0c 00 07 00 08 0c 00 05 00 06 01 00 |java............|00000080 18 6f 72 67 2f 6b 61 6b 61 2f 63 6c 61 7a 7a 2f |.org/kaka/clazz/|00000090 54 65 73 74 43 6c 61 73 73 01 00 10 6a 61 76 61 |TestClass...java|000000a0 2f 6c 61 6e 67 2f 4f 62 6a 65 63 74 00 21 00 03 |/lang/Object.!..|000000b0 00 04 00 00 00 01 00 02 00 05 00 06 00 00 00 02 |................|000000c0 00 01 00 07 00 08 00 01 00 09 00 00 00 1d 00 01 |................|000000d0 00 01 00 00 00 05 2a b7 00 01 b1 00 00 00 01 00 |......*.........|000000e0 0a 00 00 00 06 00 01 00 00 00 03 00 01 00 0b 00 |................|000000f0 0c 00 01 00 09 00 00 00 1f 00 02 00 01 00 00 00 |................|00000100 07 2a b4 00 02 04 60 ac 00 00 00 01 00 0a 00 00 |.*....`.........|00000110 00 06 00 01 00 00 00 07 00 01 00 0d 00 00 00 02 |................|00000120 00 0e |..|00000122

step 1) java magic number

读书人网 >编程

热点推荐