In Java these objects are called classes .
Classes can inherit properties from superclasses .
For instance, memory management is taken out of the hands of the programmer. Freeing memory of dereferenced objects is done by automatic garbage collection . Furthermore, operator overloading, multiple inheritance, automatic coercions between data types, and implicit declarations are eliminated. Java source code is compiled to bytecode , an intermediate stage between source code and machine code. In addition to the interpreter, the JVM provides a run-time environment to run Java programs.