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.