#
# sample small-but-valid classfile
#

cafe babe  # magic
0000       # minor_version
002e       # major_version
001f       # constant_pool_count

#
# constant_pool
#
01 0005 "Small"              # 0001: utf8["Small"]
01 0010 "java/lang/Object"   # 0002: utf8["java/lang/Object"]
07 0001                      # 0003: class[Small]
07 0002                      # 0004: class[java/lang/Object]
01 000d "ConstantValue"      # 0005: utf8["ConstantValue"]
01 0001 "a"                  # 0006: utf8["a"]
01 0001 "b"                  # 0007: utf8["b"]
01 0001 "c"                  # 0008: utf8["c"]
01 0001 "d"                  # 0009: utf8["d"]
01 0001 "e"                  # 000a: utf8["e"]
01 0001 "f"                  # 000b: utf8["f"]
01 0001 "g"                  # 000c: utf8["g"]
01 0001 "h"                  # 000d: utf8["h"]
01 0001 "i"                  # 000e: utf8["i"]
08 0001                      # 000f: string["Small"]
03 8191a1b1                  # 0010: integer[0x8191a1b1]
04 bffeb852                  # 0011: float[-1.99]
05 80818283 f0f1f2f3         # 0012: long[0x80818283f0f1f2f3]
06 bfffd70a 3d70a3d7         # 0014: double[-1.99]
01 0001 "B"                  # 0016: utf8["B"]
01 0001 "C"                  # 0017: utf8["C"]
01 0001 "D"                  # 0018: utf8["D"]
01 0001 "F"                  # 0019: utf8["F"]
01 0001 "I"                  # 001a: utf8["I"]
01 0001 "J"                  # 001b: utf8["J"]
01 0001 "S"                  # 001c: utf8["S"]
01 0001 "Z"                  # 001d: utf8["Z"]
01 0012 "Ljava/lang/String;" # 001e: utf8["Ljava/lang/String;"]

0021  # access_flags
0003  # this_class
0004  # super_class
0000  # interfaces_count

0009  # fields_count

# fields[0]
0001  # access_flags
0006  # "a"
0016  # "B"
0001  # attributes_count
# attributes[0]
0005      # name
00000002  # length
0010      # value

# fields[1]
0002  # access_flags
0007  # "b"
0017  # "C"
0001  # attributes_count
# attributes[0]
0005      # name
00000002  # length
0010      # value

# fields[2]
0004  # access_flags
0008  # "c"
0018  # "D"
0001  # attributes_count
# attributes[0]
0005      # name
00000002  # length
0014      # value

# fields[3]
0008  # access_flags
0009  # "d"
0019  # "F"
0001  # attributes_count
# attributes[0]
0005      # name
00000002  # length
0011      # value

# fields[4]
0010  # access_flags
000a  # "e"
001a  # "I"
0001  # attributes_count
# attributes[0]
0005      # name
00000002  # length
0010      # value

# fields[5]
0040  # access_flags
000b  # "f"
001b  # "J"
0001  # attributes_count
# attributes[0]
0005      # name
00000002  # length
0012      # value

# fields[6]
0080  # access_flags
000c  # "g"
001c  # "Z"
0001  # attributes_count
# attributes[0]
0005      # name
00000002  # length
0010      # value

# fields[7]
0019  # access_flags
000d  # "h"
001d  # "S"
0001  # attributes_count
# attributes[0]
0005      # name
00000002  # length
0010      # value

# fields[8]
0019  # access_flags
000e  # "i"
001e  # "Ljava/lang/String;"
0001  # attributes_count
# attributes[0]
0005      # name
00000002  # length
000f      # value

0000  # methods_count
0000  # attributes_count