3. A method as recited in claim 1 , the method further comprising: determining a satisfaction of a first condition, the first condition being defined by a first class file being the same as a second class file used by the second class loader to define the second class type; and determining the satisfaction of a second condition, the second condition being defined by a loader independent part of the runtime representation of a super class type of the second class type being the same as a loader independent part of a runtime representation of a super class type of the first class type; wherein determining the first condition, the second condition, and the unimplemented method condition enables the runtime representation of the second class type to use the first loader independent part of the runtime representation of the first class type.
1. A method for reducing a usage of main memory by a first class loader and a second class loader, the first class loader and the second class loader being capable of dynamically loading a class having a class file, the first class loader being capable of translating the class file into a first class type and the second class loader being capable of translating the class file into a second class type, the method comprising: dividing, in the memory, a runtime representation of the first class type into a first loader independent part and a first loader dependent part; determining whether a runtime representation of the second class type can use the first loader independent part of the runtime representation of the first class type; determining the satisfaction of an unimplemented method condition, the unimplemented method condition being defined by the second class type having same unimplemented methods as the first class type; and if the first loader independent part of the runtime representation of the first class type can be used by the runtime representation of the second class type, generating a second loader dependent part of the runtime representation of the second class type using the first loader independent part of the runtime representation of the first class type, wherein determining the unimplemented method condition enables the runtime representation of the second class type to use the first loader independent part of the runtime representation of the first class type.