Fail kelas Java

Fail kelas Java ialah sebuah fail dengan sambungan fail .class mengandungi kod bait Java yang boleh dilakukan pada mesin maya Java (JVM).

Susun atur umum

[sunting | sunting sumber]
ofset bait saiz jenis atau nilai penerangan
0 4 bytes u1 =
0xCA hex
angka ajaib (CAFEBABE) bagi menentukan fail mengikut format fail kelas
1 u1 =
0xFE hex
2 u1 =
0xBA hex
3 u1 =
0xBE hex
4 2 bait u2 nombor versi minor bagi format fail kelas yang dipakai
5
6 2 bait u2 nombor versi major bagi format fail kelas yang dipakai.

Java SE 13 = 57 (0x39 hex),
Java SE 12 = 56 (0x38 hex),
Java SE 11 = 55 (0x37 hex),
Java SE 10 = 54 (0x36 hex),[1]
Java SE 9 = 53 (0x35 hex),[2]
Java SE 8 = 52 (0x34 hex),
Java SE 7 = 51 (0x33 hex),
Java SE 6.0 = 50 (0x32 hex),
Java SE 5.0 = 49 (0x31 hex),
JDK 1.4 = 48 (0x30 hex),
JDK 1.3 = 47 (0x2F hex),
JDK 1.2 = 46 (0x2E hex),
JDK 1.1 = 45 (0x2D hex).
Maklumat nombor-nombor versi yang lebih awal tercata di nota kaki 1 di The JavaTM Virtual Machine Specification 2nd edition

7
8 2 bait u2 bilangan constant pool, bilangan entri dalam jadual constant pool berikut. This count is at least one greater than the actual number of entries; see following discussion.
9
10 cpsize (variable) table constant pool table, an array of variable-sized constant pool entries, containing items such as literal numbers, strings, and references to classes or methods. Indexed starting at 1, containing (constant pool count - 1) number of entries in total (see note).
...
...
...
10+cpsize 2 bytes u2 access flags, a bitmask
11+cpsize
12+cpsize 2 bytes u2 identifies this class, index into the constant pool to a "Class"-type entry
13+cpsize
14+cpsize 2 bytes u2 identifies super class, index into the constant pool to a "Class"-type entry
15+cpsize
16+cpsize 2 bytes u2 interface count, number of entries in the following interface table
17+cpsize
18+cpsize isize (variable) table interface table: a variable-length array of constant pool indexes describing the interfaces implemented by this class
...
...
...
18+cpsize+isize 2 bytes u2 field count, number of entries in the following field table
19+cpsize+isize
20+cpsize+isize fsize (variable) table field table, variable length array of fields

each element is a field_info structure defined in https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.5

...
...
...
20+cpsize+isize+fsize 2 bytes u2 method count, number of entries in the following method table
21+cpsize+isize+fsize
22+cpsize+isize+fsize msize (variable) table method table, variable length array of methods

each element is a method_info structure defined in https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.6

...
...
...
22+cpsize+isize+fsize+msize 2 bytes u2 attribute count, number of entries in the following attribute table
23+cpsize+isize+fsize+msize
24+cpsize+isize+fsize+msize asize (variable) table attribute table, variable length array of attributes

each element is an attribute_info structure defined in https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7

...
...
...

Jika anda melihat rencana yang menggunakan templat {{tunas}} ini, gantikanlah dengan templat tunas yang lebih spesifik.