A Java Virtual Machine has a flexible class loader architecture that enables Java to load classes during run time. This has two advantages. First, the microcontroller loads only classes that are really needed for the execution. Second, it is able to load an actualized class during run time and thus it becomes more flexible. A class to be loaded is accessed via its name, which is declared in a string. The Virtual Machine looks up this string in the class table and, if it finds the class, returns its reference. In the other case the class is loaded from the file system or from the network. The class table is a linear index of all loaded classes and allows looking up a class when you know its name. The class table is organized as a linear list, so the maximum access time to a class can only be given if the number of entries and thus the maximum number of loaded classes is limited. But even a search in a linear list has a bad worst-case execution time that should be avoided in a real-time system. The avoidance of linear searches is one of the requirements for the design of our KJM class loader.