The characteristics and features of Java include simplicity based on C++ syntax, object-oriented programming with encapsulation, inheritance, and polymorphism, robustness with proper memory management, automatic garbage collection, and exception handling. Additionally, Java is platform-independent due to the use of a virtual machine (JVM) that runs bytecode on any platform. The JVM performs code loading, verification, execution, and provides a runtime environment.