The class loader is responsible for loading classes. It loads core Java classes, extension classes, and user/application classes. The class loading process involves bootstrap, extension, and system class loaders. Bytecode verification checks that code abides by Java language rules before execution. A security manager defines permissions to restrict sensitive actions and checks permissions before operations.