Improved frameworks for implementing class files that are particularly useful
in virtual machine based computing systems will be described. In one aspect of
the invention, each method within a class file is associated with a corresponding
"reference cell." The reference cells typically include sufficient information
to facilitate the invocation of the corresponding method. By way of example, each
reference cell may include a class pointer field, a method name field, a signature
field and potentially other fields. In another aspect of the invention, a process
for loading class files into a virtual machine based computing system is described.
Each method invocation within the class file is translated into an internal invocation
that references a reference cell associated with the internal class representation
that contains the method. The use of such reference cells has the potential in
many circumstances to improve the performance of the virtual machine as well as
potentially reduce the memory requirements of the internal class representations.
In yet another aspect of the invention, each method invocation in a class file
is reviewed during loading to determine whether a reference cell currently exists
for its associated method. When it is determined that a reference cell does not
currently exist for a method associated with a selected method invocation, a new
reference cell is created for the selected method. The newly created reference
cell is then associated with the internal class representation that contains the
method (which may or may not be different than the internal class representation
that contains the method invocation). In some embodiments, the class file is an
internal class representation that represents a Java class and does not include
a Constant Pool.