Contents Prev Next Up

## The Java Virtual Machine

# Limitations

The Java virtual machine design imposes some limitations on Java implementations based on it.

- 32-bit pointers and stacks limit the Java virtual machine's internal addressing to 4G

- Signed 16-bit offsets (e.g. ifeq) for branch and jump instructions limit the size of an Java method to 32k

- Unsigned 8-bit local variable indices limit the number of local variables per Java stack frame to 256

- Signed 16-bit indices into the constant pool limit the number of constant pool entries per method to 32k

For _quick instructions only [See Appendix A]:

- Unsigned 8-bit offsets into objects (e.g. invokemethod_quick) limit the number of methods in a class to 256

- Unsigned 8-bit argument counts (e.g. invokemethod_quick) limits the size of a method call's parameters to 256 32 bit words, where a long or double parameters occupy two words each.

Contents Prev Next Up

Generated with CERN WebMaker