1) What is difference between JDK,JRE and JVM?
JVM is an acronym for Java Virtual Machine, it is an abstract machine which provides the runtime environment in which java bytecode can be executed.
JVMs are available for many hardware and software platforms (so JVM is platform dependent).
JRE stands for Java Runtime Environment. It is the implementation of JVM and physically exists.
JDK is an acronym for Java Development Kit. It physically exists. It contains JRE + development tools.