The class loader performs the following steps:
1. Access the class file to be loaded.
2. Check the class header.
3. Read the constant pool and write it into the microcontroller RAM.
4. Recursively load the parent classes, if available. All classes except of the object class have a parent class.
5. Read the interfaces.
6. Read and link the fields and write them to the microcontroller memory.
7. Read and link the methods and write them into the RAM. The methods contain the Java bytecodes, which are executed when the application is running.
8. Initialize the class variables and perform further optimizations.