Four operations JVM perform

1. Loading: The JVM loads necessary class files and resources required to run a Java program into memory.

2. Verifying: The JVM checks the loaded bytecode to ensure that it is valid and does not violate any security constraints.
3. Executing: The JVM executes the bytecode by interpreting it or compiling it to native machine code.
4. Garbage Collection: The JVM manages memory by automatically deallocating objects that are no longer in use through garbage collection.