- Java uses a bytecode format instead of machine code and disallows pointer arithmetic, improving security. Pointer support is not used in Java because it would require expensive runtime checks to ensure safe memory access.
- The Java execution process involves class loading, bytecode verification, interpretation/compilation, and execution. The class loader loads .class files.
- The JDK contains development tools, the JRE contains libraries and other files used at runtime including the JVM specification. The JVM is an abstract machine that executes Java bytecode.