Allocated memory that is no longer needed should be deallocated
in other lang it is programmer’s responsibility java programming lang provides a system level thread to track itGarbage Collection
checks for and frees memory no longer needed

JAVA RUNTIME ENVIRONMENT
Loading code: Done by Class Loader
Verifying code :By bytecode verifier
Executing code : by runtime interpreter
Class Loader
Loads all classes needed for the execution of a program. The class loader adds security by separating the namespaces for the classes of the local file system from those imported from network sources .
ByteCode Verifier:
Ensures:
The code adheres to the JVM specification
The code does not violate system integrity
The code causes no operand stack overflows or underflows
The parameter types for all operational code are correct
no illegal data conversions have occurred
Object field accesses are known to be legal
Note: All class files imported across the network pass through the bytecode verifier
Source File Layout
Contains three “top level” elements:
an optional package declaration
any number of import statements
class and interface declaration
