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), |
| 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.