Penguin
Annotated edit history of ClassFile version 3, including all changes. View license author blame.
Rev Author # Line
2 DavidHallett 1 [ClassFile]s are the ByteCode form of [Java]. They are platform independant and one of the main reasons for the success of the Java language. They are normally distributed in JarFile, which is a specialisation of a [zip(1)] file.
1 StuartYeates 2
3 The ClassFile is built around a Constant Pool, which is rather like a symbol table in a [Fortran] library.
4
5 A Number of key limitations are introduced into Java systems by the [ClassFile] format, including:
6 # The per-class or per-interface constant pool is limited to 65535 entries
7 # The size of code per non-native, non-abstract method is limited to 65536 bytes
8 # The greatest number of local variables in the local variables array of a frame created upon invocation of a method is limited to 65535
9 # The number of fields that may be declared by a class or interface is limited to 65535
10 # The number of methods that may be declared by a class or interface is limited to 65535
11 # The number of direct superinterfaces of a class or interface is limited to 65535
12
3 DavidHallett 13 These issues are not usually a problem for hand-written code, but [CompilerCompiler]s often generate finite state machines which run into these. The canonical reference for these issues is: [http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html]