1732:
2110:
2122:
1476:
1134:
Due to historic choices made during the file format development, the number of constants in the constant pool table is not actually the same as the constant pool count which precedes the table. First, the table is indexed starting at 1 (rather than 0), but the count should actually be interpreted as
265:
for 4 character hex words that fit after "CAFE" (it seemed to be a good theme) I hit on BABE and decided to use it. At that time, it didn't seem terribly important or destined to go anywhere but the trash-can of history. So CAFEBABE became the class file format, and CAFEDEAD was the persistent object
325:
Some of these fundamental types are then re-interpreted as higher-level values (such as strings or floating-point numbers), depending on context. There is no enforcement of word alignment, and so no padding bytes are ever used. The overall layout of the class file is as shown in the following table.
1130:
The constant pool table is where most of the literal constant values are stored. This includes values such as numbers of all sorts, strings, identifier names, references to classes and methods, and type descriptors. All indexes, or references, to specific constants in the constant pool table are
279:
Because the class file contains variable-sized items and does not also contain embedded file offsets (or pointers), it is typically parsed sequentially, from the first byte toward the end. At the lowest level the file format is described in terms of a few fundamental data types:
1174:
UTF-8 (Unicode) string: a character string prefixed by a 16-bit number (type u2) indicating the number of bytes in the encoded string which immediately follows (which may be different than the number of characters). Note that the encoding used is not actually
256:
died, they even put up a little
Buddhist-esque shrine. When we used to go there, we referred to the place as Cafe Dead. Somewhere along the line it was noticed that this was a HEX number. I was re-vamping some file format code and needed a couple of
1432:
Class names in Java, when fully qualified, are traditionally dot-separated, such as "java.lang.Object". However within the low-level Class reference constants, an internal form appears which uses slashes instead, such as "java/lang/Object".
321:: an array of variable-length items of some type. The number of items in the table is identified by a preceding count number (the count is a u2), but the size in bytes of the table can only be determined by examining each of its items.
1391:
instruction to specify a bootstrap method, the dynamic invocation name, the argument and return types of the call, and optionally, a sequence of additional constants called static arguments to the bootstrap method.
1135:
the maximum index plus one. Additionally, two types of constants (longs and doubles) take up two consecutive slots in the table, although the second such slot is a phantom index that is never directly used.
1429:
There are only two integral constant types, integer and long. Other integral types appearing in the high-level language, such as boolean, byte, and short must be represented as an integer constant.
515:
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 (
1456:
rather than being directly encoded using UTF-8. In this case each of the two surrogates is encoded separately in UTF-8. For example, U+1D11E is encoded as the 6-byte sequence
1331:
Name and type descriptor: two indexes to UTF-8 strings within the constant pool, the first representing a name (identifier) and the second a specially encoded type descriptor.
493:
constant pool count, number of entries in the following constant pool table. This count is at least one greater than the actual number of entries; see following discussion.
1436:
The
Unicode strings, despite the moniker "UTF-8 string", are not actually encoded according to the Unicode standard, although it is similar. There are two differences (see
1317:
Interface method reference: two indexes within the constant pool, the first pointing to a Class reference, the second to a Name and Type descriptor. (big-endian)
37:
application/java-vm, application/x-httpd-java, application/x-java, application/java, application/java-byte-code, application/x-java-class, application/x-java-vm
1345:
Method handle: this structure is used to represent a method handle and consists of one byte of type descriptor, followed by an index within the constant pool.
1142:. The number of bytes following this tag and their interpretation are then dependent upon the tag value. The valid constant types and their tag values are:
99:
can also be used to create class files). If a source file has more than one class, each class is compiled into a separate class file. Thus, it is called a
1303:
Method reference: two indexes within the constant pool, the first pointing to a Class reference, the second to a Name and Type descriptor. (big-endian)
1665:
1289:
Field reference: two indexes within the constant pool, the first pointing to a Class reference, the second to a Name and Type descriptor. (big-endian)
1605:
252:
used to perform there before they made it big. It was a pretty funky place that was definitely a
Grateful Dead Kinda Place. When
962:
doesn't support multiple variable length arrays within a struct, the code below won't compile and only serves as a demonstration.
266:
format. But the persistent object facility went away, and along with it went the use of CAFEDEAD - it was eventually replaced by
184:
1658:
1131:
given by 16-bit (type u2) numbers, where index value 1 refers to the first constant in the table (index value 0 is invalid).
2114:
1546:
662:
interface table: a variable-length array of constant pool indexes describing the interfaces implemented by this class
1651:
1619:
248:"We used to go to lunch at a place called St Michael's Alley. According to local legend, in the deep dark past, the
110:, and a class file compiled on one platform will execute on a JVM of another platform. This makes Java applications
1532:
1359:
Method type: this structure is used to represent a method type, and consists of an index within the constant pool.
1257:
Class reference: an index within the constant pool to a UTF-8 string containing the fully qualified class name (in
1699:
1229:
Long: a signed 64-bit two's complement number in big-endian format (takes two slots in the constant pool table)
2145:
1992:
1716:
1373:
Dynamic: this is used to specify a dynamically computed constant produced by invocation of a bootstrap method.
261:: one for the persistent object file, and one for classes. I used CAFEDEAD for the object file format, and in
1243:
Double: a 64-bit double-precision IEEE 754 floating-point number (takes two slots in the constant pool table)
2062:
1972:
1957:
267:
198:
176:
1636:, which includes the class file format. Both the first and second editions of the book are freely available
1987:
1693:
1587:
20:
929:
827:
737:
2126:
1942:
1822:
1481:
1440:
for a complete discussion). The first is that the code point U+0000 is encoded as the two-byte sequence
81:
1609:
471:
2038:
357:
258:
233:
144:
123:
1982:
1924:
1674:
1449:
959:
2009:
2150:
2048:
1914:
1771:
1746:
1934:
1863:
241:
1909:
1802:
1761:
1751:
1688:
1633:
107:
73:
8:
1194:
92:
2053:
2043:
1853:
1843:
1275:
String reference: an index within the constant pool to a UTF-8 string (big-endian too)
1138:
The type of each item (constant) in the constant pool is identified by an initial byte
221:
65:
1615:
288:
2093:
2058:
1919:
1878:
1561:"[JDK-8148785] Update class file version to 53 for JDK-9 - Java Bug System"
1560:
1520:
45:
2083:
1792:
1452:
at U+10000 and above) are encoded using a surrogate-pair construction similar to
1888:
1858:
1838:
1812:
111:
2139:
2078:
1883:
1848:
1807:
1489:
1448:. The second difference is that supplementary characters (those outside the
249:
237:
96:
77:
69:
58:
2088:
1731:
1420:
Package: this is used to identify a package exported or opened by a module.
1179:, but involves a slight modification of the Unicode standard encoding form.
208:: Any attributes of the class (for example the name of the sourcefile, etc.)
1643:
253:
1508:
1787:
225:
84:
1637:
360:(CAFEBABE) used to identify file as conforming to the class file format
1977:
1705:
930:
https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7
828:
https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.6
738:
https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.5
302:
32:
1947:
1711:
2121:
1475:
874:
attribute count, number of entries in the following attribute table
634:
interface count, number of entries in the following interface table
1212:
953:
2017:
1952:
1893:
1873:
1868:
1817:
1756:
1721:
19:
This article is about the data format. For classes in Java, see
2022:
1967:
1797:
1766:
1453:
312:
298:
780:
method count, number of entries in the following method table
232:(the first 4 entries in the table below). The history of this
139:
There are 10 basic sections to the Java class file structure:
122:
On 11 December 2006, the class file format was modified under
1962:
1437:
1176:
698:
field count, number of entries in the following field table
609:
class, index into the constant pool to a "Class"-type entry
580:
class, index into the constant pool to a "Class"-type entry
262:
218:
1604:
103:
file because it contains the bytecode for a single class.
470:
For details of earlier version numbers see footnote 1 at
423:
major version number of the class file format being used.
404:
minor version number of the class file format being used
166:: for example whether the class is abstract, static, etc.
928:
each element is an attribute_info structure defined in
1444:(in hex) instead of the standard single-byte encoding
1521:
James
Gosling private communication to Bill Bumgarner
926:
attribute table, variable length array of attributes
1471:
472:
The JavaTM Virtual
Machine Specification 2nd edition
1460:, rather than the correct 4-byte UTF-8 encoding of
826:each element is a method_info structure defined in
736:each element is a field_info structure defined in
2137:
154:: the minor and major versions of the class file
954:Representation in a C-like programming language
824:method table, variable length array of methods
217:Class files are identified by the following 4
1659:
734:field table, variable length array of fields
76:. A Java class file is usually produced by a
1673:
519:- 1) number of entries in total (see note).
129:
1406:Module: this is used to identify a module.
1666:
1652:
1582:
1580:
1578:
1576:
1574:
1572:
1570:
1567:
2138:
1632:The official defining document of the
1611:The Java Virtual Machine Specification
1647:
1511:Java Class File Specification Update
1125:
13:
1638:online for viewing and/or download
1614:(Second ed.). Prentice Hall.
1598:
1588:"Chapter 4. The class File Format"
1533:"Chapter 4. The class File Format"
1387:InvokeDynamic: this is used by an
14:
2162:
1211:Float: a 32-bit single-precision
274:
160:: Pool of constants for the class
2120:
2109:
2108:
1730:
1474:
315:integer in big-endian byte order
2127:Computer programming portal
212:
172:: The name of the current class
1832:Major third-party technologies
1553:
1539:
1525:
1514:
1502:
1:
2063:Sun Microsystems Laboratories
1495:
240:referring to a restaurant in
188:: Any interfaces in the class
180:: The name of the super class
1197:number in big-endian format
460:Java SE 5.0 = 49 (0x31 hex),
458:Java SE 6.0 = 50 (0x32 hex),
152:Version of Class File Format
106:JVMs are available for many
72:that can be executed on the
21:Class (computer programming)
7:
1482:Computer programming portal
1467:
450:Java SE 10 = 54 (0x36 hex),
448:Java SE 11 = 55 (0x37 hex),
446:Java SE 12 = 56 (0x38 hex),
444:Java SE 13 = 57 (0x39 hex),
442:Java SE 14 = 58 (0x3A hex),
440:Java SE 15 = 59 (0x3B hex),
438:Java SE 16 = 60 (0x3C hex),
436:Java SE 17 = 61 (0x3D hex),
434:Java SE 18 = 62 (0x3E hex),
432:Java SE 19 = 63 (0x3F hex),
430:Java SE 20 = 64 (0x40 hex),
428:Java SE 21 = 65 (0x41 hex),
426:Java SE 22 = 66 (0x42 hex),
134:
16:Executable Java file format
10:
2167:
2039:Apache Software Foundation
456:Java SE 7 = 51 (0x33 hex),
454:Java SE 8 = 52 (0x34 hex),
452:Java SE 9 = 53 (0x35 hex),
202:: Any methods in the class
124:Java Specification Request
117:
74:Java Virtual Machine (JVM)
18:
2106:
2071:
2031:
2008:
2001:
1933:
1925:Free Java implementations
1902:
1831:
1780:
1739:
1728:
1681:
1193:Integer: a signed 32-bit
925:
922:
916:
873:
870:
867:
823:
820:
814:
779:
776:
773:
733:
730:
724:
697:
694:
691:
661:
658:
652:
633:
630:
627:
604:
601:
598:
575:
572:
569:
550:
547:
544:
514:
511:
505:
492:
489:
486:
422:
419:
416:
403:
400:
397:
356:
348:
194:: Any fields in the class
130:File layout and structure
82:Java programming language
41:
31:
1675:Java (software platform)
1154:Description of constant
964:
551:access flags, a bitmask
468:JDK 1.1 = 45 (0x2D hex).
466:JDK 1.2 = 46 (0x2E hex),
464:JDK 1.3 = 47 (0x2F hex),
462:JDK 1.4 = 48 (0x30 hex),
33:Internet media type
1608:, Frank Yellin (1999).
91:files) containing Java
2049:Java Community Process
1915:Java Community Process
1547:"JDK 10 Release Notes"
1215:floating-point number
272:
95:(alternatively, other
2146:Computer file formats
1781:Platform technologies
246:
1910:Java version history
1762:Java virtual machine
1752:Java Development Kit
1634:Java Virtual Machine
112:platform-independent
1740:Oracle technologies
1157:Version introduced
1006:constant_pool_count
517:constant pool count
28:
2054:Oracle Corporation
2044:Eclipse Foundation
66:filename extension
26:
2133:
2132:
2102:
2101:
1458:ED A0 B4 ED B4 9E
1427:
1426:
1151:Additional bytes
1126:The constant pool
970:Class_File_Format
951:
950:
236:was explained by
51:
50:
42:Developed by
2158:
2125:
2124:
2112:
2111:
2094:Patrick Naughton
2059:Sun Microsystems
2006:
2005:
1920:Sun Microsystems
1813:Web Start (JNLP)
1734:
1668:
1661:
1654:
1645:
1644:
1631:
1629:
1628:
1592:
1591:
1584:
1565:
1564:
1557:
1551:
1550:
1543:
1537:
1536:
1529:
1523:
1518:
1512:
1506:
1484:
1479:
1478:
1463:
1459:
1447:
1443:
1195:two's complement
1145:
1144:
1121:
1118:
1115:
1112:
1109:
1106:
1105:attributes_count
1103:
1100:
1097:
1094:
1091:
1088:
1085:
1082:
1079:
1076:
1073:
1070:
1067:
1064:
1061:
1058:
1055:
1052:
1051:interfaces_count
1049:
1046:
1043:
1040:
1037:
1034:
1031:
1028:
1025:
1022:
1019:
1016:
1013:
1010:
1007:
1004:
1001:
998:
995:
992:
989:
986:
983:
980:
977:
974:
971:
968:
329:
328:
231:
102:
90:
64:
46:Sun Microsystems
29:
25:
2166:
2165:
2161:
2160:
2159:
2157:
2156:
2155:
2136:
2135:
2134:
2129:
2119:
2098:
2084:Arthur van Hoff
2067:
2027:
1997:
1929:
1898:
1827:
1776:
1735:
1726:
1677:
1672:
1626:
1624:
1622:
1601:
1599:Further reading
1596:
1595:
1586:
1585:
1568:
1559:
1558:
1554:
1545:
1544:
1540:
1531:
1530:
1526:
1519:
1515:
1507:
1503:
1498:
1480:
1473:
1470:
1461:
1457:
1445:
1441:
1261:) (big-endian)
1259:internal format
1170:
1128:
1123:
1122:
1119:
1116:
1113:
1110:
1107:
1104:
1101:
1098:
1095:
1092:
1089:
1086:
1083:
1080:
1077:
1074:
1071:
1068:
1065:
1062:
1059:
1056:
1053:
1050:
1047:
1044:
1041:
1038:
1035:
1032:
1029:
1026:
1023:
1020:
1017:
1014:
1011:
1008:
1005:
1002:
999:
996:
993:
990:
987:
984:
981:
978:
975:
972:
969:
966:
956:
469:
467:
465:
463:
461:
459:
457:
455:
453:
451:
449:
447:
445:
443:
441:
439:
437:
435:
433:
431:
429:
427:
424:
389:
379:
369:
353:
277:
229:
215:
137:
132:
120:
100:
88:
62:
55:Java class file
27:Java class file
24:
17:
12:
11:
5:
2164:
2154:
2153:
2148:
2131:
2130:
2107:
2104:
2103:
2100:
2099:
2097:
2096:
2091:
2086:
2081:
2075:
2073:
2069:
2068:
2066:
2065:
2056:
2051:
2046:
2041:
2035:
2033:
2029:
2028:
2026:
2025:
2020:
2014:
2012:
2003:
1999:
1998:
1996:
1995:
1990:
1985:
1980:
1975:
1970:
1965:
1960:
1955:
1950:
1945:
1939:
1937:
1931:
1930:
1928:
1927:
1922:
1917:
1912:
1906:
1904:
1900:
1899:
1897:
1896:
1891:
1886:
1881:
1876:
1871:
1866:
1861:
1856:
1851:
1846:
1841:
1835:
1833:
1829:
1828:
1826:
1825:
1820:
1815:
1810:
1805:
1800:
1795:
1790:
1784:
1782:
1778:
1777:
1775:
1774:
1769:
1764:
1759:
1754:
1749:
1743:
1741:
1737:
1736:
1729:
1727:
1725:
1724:
1719:
1714:
1709:
1703:
1697:
1691:
1685:
1683:
1679:
1678:
1671:
1670:
1663:
1656:
1648:
1642:
1641:
1620:
1600:
1597:
1594:
1593:
1566:
1552:
1538:
1524:
1513:
1500:
1499:
1497:
1494:
1493:
1492:
1486:
1485:
1469:
1466:
1425:
1424:
1421:
1418:
1415:
1411:
1410:
1407:
1404:
1401:
1397:
1396:
1393:
1385:
1382:
1378:
1377:
1374:
1371:
1368:
1364:
1363:
1360:
1357:
1354:
1350:
1349:
1346:
1343:
1340:
1336:
1335:
1332:
1329:
1326:
1322:
1321:
1318:
1315:
1312:
1308:
1307:
1304:
1301:
1298:
1294:
1293:
1290:
1287:
1284:
1280:
1279:
1276:
1273:
1270:
1266:
1265:
1262:
1255:
1252:
1248:
1247:
1244:
1241:
1238:
1234:
1233:
1230:
1227:
1224:
1220:
1219:
1216:
1209:
1206:
1202:
1201:
1198:
1191:
1188:
1184:
1183:
1180:
1172:
1163:
1159:
1158:
1155:
1152:
1149:
1127:
1124:
1111:attribute_info
965:
955:
952:
949:
948:
944:
943:
939:
938:
934:
933:
924:
921:
915:
896:
895:
876:
875:
872:
869:
866:
847:
846:
842:
841:
837:
836:
832:
831:
822:
819:
813:
798:
797:
782:
781:
778:
775:
772:
757:
756:
752:
751:
747:
746:
742:
741:
732:
729:
723:
712:
711:
700:
699:
696:
693:
690:
679:
678:
674:
673:
669:
668:
664:
663:
660:
657:
651:
644:
643:
636:
635:
632:
629:
626:
619:
618:
611:
610:
603:
600:
597:
590:
589:
582:
581:
574:
571:
568:
561:
560:
553:
552:
549:
546:
543:
536:
535:
531:
530:
526:
525:
521:
520:
513:
510:
504:
500:
499:
495:
494:
491:
488:
485:
481:
480:
476:
475:
421:
418:
415:
411:
410:
406:
405:
402:
399:
396:
392:
391:
386:
382:
381:
376:
372:
371:
366:
362:
361:
355:
350:
347:
343:
342:
339:
338:Type or value
336:
333:
323:
322:
316:
311:: an unsigned
306:
297:: an unsigned
292:
287:: an unsigned
276:
275:General layout
273:
214:
211:
210:
209:
203:
195:
189:
181:
173:
167:
161:
155:
149:
136:
133:
131:
128:
119:
116:
49:
48:
43:
39:
38:
35:
15:
9:
6:
4:
3:
2:
2163:
2152:
2151:Java platform
2149:
2147:
2144:
2143:
2141:
2128:
2123:
2117:
2116:
2105:
2095:
2092:
2090:
2087:
2085:
2082:
2080:
2079:James Gosling
2077:
2076:
2074:
2070:
2064:
2060:
2057:
2055:
2052:
2050:
2047:
2045:
2042:
2040:
2037:
2036:
2034:
2032:Organizations
2030:
2024:
2021:
2019:
2016:
2015:
2013:
2011:
2007:
2004:
2000:
1994:
1991:
1989:
1986:
1984:
1981:
1979:
1976:
1974:
1971:
1969:
1966:
1964:
1961:
1959:
1956:
1954:
1951:
1949:
1946:
1944:
1941:
1940:
1938:
1936:
1935:JVM languages
1932:
1926:
1923:
1921:
1918:
1916:
1913:
1911:
1908:
1907:
1905:
1901:
1895:
1892:
1890:
1887:
1885:
1882:
1880:
1877:
1875:
1872:
1870:
1867:
1865:
1862:
1860:
1857:
1855:
1852:
1850:
1849:GNU Classpath
1847:
1845:
1842:
1840:
1837:
1836:
1834:
1830:
1824:
1821:
1819:
1816:
1814:
1811:
1809:
1806:
1804:
1801:
1799:
1796:
1794:
1791:
1789:
1786:
1785:
1783:
1779:
1773:
1770:
1768:
1765:
1763:
1760:
1758:
1755:
1753:
1750:
1748:
1745:
1744:
1742:
1738:
1733:
1723:
1720:
1718:
1715:
1713:
1710:
1707:
1704:
1701:
1698:
1695:
1692:
1690:
1687:
1686:
1684:
1680:
1676:
1669:
1664:
1662:
1657:
1655:
1650:
1649:
1646:
1639:
1635:
1623:
1621:0-201-43294-3
1617:
1613:
1612:
1607:
1603:
1602:
1589:
1583:
1581:
1579:
1577:
1575:
1573:
1571:
1562:
1556:
1548:
1542:
1534:
1528:
1522:
1517:
1510:
1505:
1501:
1491:
1490:Java bytecode
1488:
1487:
1483:
1477:
1472:
1465:
1455:
1451:
1439:
1434:
1430:
1422:
1419:
1416:
1413:
1412:
1408:
1405:
1402:
1399:
1398:
1394:
1390:
1389:invokedynamic
1386:
1383:
1380:
1379:
1375:
1372:
1369:
1366:
1365:
1361:
1358:
1355:
1352:
1351:
1347:
1344:
1341:
1338:
1337:
1333:
1330:
1327:
1324:
1323:
1319:
1316:
1313:
1310:
1309:
1305:
1302:
1299:
1296:
1295:
1291:
1288:
1285:
1282:
1281:
1277:
1274:
1271:
1268:
1267:
1263:
1260:
1256:
1253:
1250:
1249:
1245:
1242:
1239:
1236:
1235:
1231:
1228:
1225:
1222:
1221:
1217:
1214:
1210:
1207:
1204:
1203:
1199:
1196:
1192:
1189:
1186:
1185:
1181:
1178:
1173:
1168:
1164:
1161:
1160:
1156:
1153:
1150:
1147:
1146:
1143:
1141:
1136:
1132:
1087:methods_count
1015:constant_pool
997:major_version
988:minor_version
963:
961:
946:
945:
941:
940:
936:
935:
932:
931:
919:
914:
910:
906:
902:
898:
897:
894:
890:
886:
882:
878:
877:
865:
861:
857:
853:
849:
848:
844:
843:
839:
838:
834:
833:
830:
829:
817:
812:
808:
804:
800:
799:
796:
792:
788:
784:
783:
771:
767:
763:
759:
758:
754:
753:
749:
748:
744:
743:
740:
739:
727:
722:
718:
714:
713:
710:
706:
702:
701:
689:
685:
681:
680:
676:
675:
671:
670:
666:
665:
655:
650:
646:
645:
642:
638:
637:
625:
621:
620:
617:
613:
612:
608:
596:
592:
591:
588:
584:
583:
579:
567:
563:
562:
559:
555:
554:
542:
538:
537:
533:
532:
528:
527:
523:
522:
518:
508:
502:
501:
497:
496:
483:
482:
478:
477:
474:
473:
413:
412:
408:
407:
394:
393:
387:
384:
383:
377:
374:
373:
367:
364:
363:
359:
351:
345:
344:
340:
337:
334:
331:
330:
327:
320:
317:
314:
310:
307:
304:
300:
296:
293:
290:
286:
283:
282:
281:
271:
269:
264:
260:
259:magic numbers
255:
251:
250:Grateful Dead
245:
243:
239:
238:James Gosling
235:
227:
223:
220:
207:
204:
201:
200:
196:
193:
190:
187:
186:
182:
179:
178:
174:
171:
168:
165:
162:
159:
158:Constant Pool
156:
153:
150:
147:
146:
142:
141:
140:
127:
125:
115:
113:
109:
104:
98:
97:JVM languages
94:
86:
83:
79:
78:Java compiler
75:
71:
70:Java bytecode
68:) containing
67:
60:
56:
47:
44:
40:
36:
34:
30:
22:
2113:
1708:(Enterprise)
1625:. Retrieved
1610:
1606:Tim Lindholm
1555:
1541:
1527:
1516:
1504:
1435:
1431:
1428:
1388:
1258:
1166:
1139:
1137:
1133:
1129:
1069:fields_count
1024:access_flags
979:magic_number
957:
927:
917:
912:
908:
904:
900:
892:
888:
884:
880:
863:
859:
855:
851:
825:
815:
810:
806:
802:
794:
790:
786:
769:
765:
761:
735:
725:
720:
716:
708:
704:
687:
683:
653:
648:
640:
623:
615:
606:
594:
586:
577:
565:
557:
540:
516:
506:
425:
358:magic number
341:Description
332:Byte offset
324:
318:
308:
294:
284:
278:
247:
234:magic number
216:
213:Magic Number
205:
197:
191:
183:
175:
169:
164:Access Flags
163:
157:
151:
148:: 0xCAFEBABE
145:Magic Number
143:
138:
121:
105:
85:source files
54:
52:
2010:Conferences
1717:Android SDK
1462:F0 9D 84 9E
1171:(variable)
1093:method_info
1042:super_class
920:(variable)
818:(variable)
728:(variable)
656:(variable)
605:identifies
576:identifies
509:(variable)
301:integer in
230:CA FE BA BE
226:hexadecimal
177:Super Class
126:(JSR) 202.
2140:Categories
2089:Urs Hölzle
1978:Processing
1706:Jakarta EE
1702:(Standard)
1627:2008-10-13
1496:References
1114:attributes
1075:field_info
1060:interfaces
1033:this_class
305:byte order
303:big-endian
206:Attributes
185:Interfaces
170:This Class
61:(with the
2002:Community
1948:BeanShell
1864:Hibernate
1839:Blackdown
1772:Maxine VM
1712:Java Card
1682:Platforms
1148:Tag byte
390:0xBE hex
380:0xBA hex
370:0xFE hex
354:0xCA hex
242:Palo Alto
108:platforms
2115:Category
1793:Servlets
1468:See also
1417:2 bytes
1403:2 bytes
1384:4 bytes
1370:4 bytes
1356:2 bytes
1342:3 bytes
1328:4 bytes
1314:4 bytes
1300:4 bytes
1286:4 bytes
1272:2 bytes
1254:2 bytes
1240:8 bytes
1226:8 bytes
1213:IEEE 754
1208:4 bytes
1190:4 bytes
868:2 bytes
774:2 bytes
692:2 bytes
628:2 bytes
599:2 bytes
570:2 bytes
545:2 bytes
487:2 bytes
417:2 bytes
398:2 bytes
349:4 bytes
263:grepping
135:Sections
2118:
2018:JavaOne
1993:Oxygene
1953:Clojure
1903:History
1894:WildFly
1889:TopLink
1874:Jazelle
1869:IcedTea
1859:Harmony
1844:Eclipse
1823:Modules
1818:Pack200
1798:MIDlets
1788:Applets
1757:OpenJDK
1722:GraalVM
1700:Java SE
1696:(Micro)
1694:Java ME
1509:JSR 202
1096:methods
1012:cp_info
291:integer
199:Methods
118:History
93:classes
2072:People
2023:Devoxx
1973:Kotlin
1968:Jython
1958:Groovy
1884:Struts
1879:Spring
1767:JavaFX
1747:Squawk
1618:
1454:UTF-16
1334:1.0.2
1320:1.0.2
1306:1.0.2
1292:1.0.2
1278:1.0.2
1264:1.0.2
1246:1.0.2
1232:1.0.2
1218:1.0.2
1200:1.0.2
1182:1.0.2
1078:fields
967:struct
958:Since
923:table
901:cpsize
881:cpsize
852:cpsize
821:table
803:cpsize
787:cpsize
762:cpsize
731:table
717:cpsize
705:cpsize
684:cpsize
659:table
649:cpsize
641:cpsize
624:cpsize
616:cpsize
595:cpsize
587:cpsize
566:cpsize
558:cpsize
541:cpsize
512:table
507:cpsize
313:32-bit
299:16-bit
222:header
192:Fields
101:.class
63:.class
1988:Scala
1983:Rhino
1963:JRuby
1442:C0 80
1438:UTF-8
1177:UTF-8
1169:bytes
918:asize
913:msize
909:fsize
905:isize
893:msize
889:fsize
885:isize
864:msize
860:fsize
856:isize
816:msize
811:fsize
807:isize
795:fsize
791:isize
770:fsize
766:isize
726:fsize
721:isize
709:isize
688:isize
654:isize
607:super
335:Size
319:table
289:8-bit
254:Jerry
89:.java
80:from
57:is a
1943:Java
1616:ISBN
947:...
942:...
937:...
845:...
840:...
835:...
755:...
750:...
745:...
677:...
672:...
667:...
578:this
534:...
529:...
524:...
388:u1 =
378:u1 =
368:u1 =
352:u1 =
224:(in
219:byte
59:file
1854:GWT
1808:JSF
1803:JSP
1689:JVM
1450:BMP
1414:20
1400:19
1381:18
1376:11
1367:17
1353:16
1339:15
1325:12
1311:11
1297:10
1140:tag
899:24+
879:23+
871:u2
850:22+
801:22+
785:21+
777:u2
760:20+
715:20+
703:19+
695:u2
682:18+
647:18+
639:17+
631:u2
622:16+
614:15+
602:u2
593:14+
585:13+
573:u2
564:12+
556:11+
548:u2
539:10+
503:10
490:u2
420:u2
401:u2
270:."
268:RMI
228:):
2142::
2061:,
1569:^
1464:.
1446:00
1423:9
1409:9
1395:7
1362:7
1348:7
1283:9
1269:8
1251:7
1237:6
1223:5
1205:4
1187:3
1165:2+
1162:1
1102:u2
1084:u2
1066:u2
1057:u2
1048:u2
1039:u2
1030:u2
1021:u2
1003:u2
994:u2
985:u2
976:u4
498:9
484:8
479:7
414:6
409:5
395:4
385:3
375:2
365:1
346:0
309:u4
295:u2
285:u1
244::
114:.
53:A
1667:e
1660:t
1653:v
1640:.
1630:.
1590:.
1563:.
1549:.
1535:.
1167:x
1120:}
1117:;
1108:;
1099:;
1090:;
1081:;
1072:;
1063:;
1054:;
1045:;
1036:;
1027:;
1018:;
1009:;
1000:;
991:;
982:;
973:{
960:C
911:+
907:+
903:+
891:+
887:+
883:+
862:+
858:+
854:+
809:+
805:+
793:+
789:+
768:+
764:+
719:+
707:+
686:+
87:(
23:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.