Can someone please explain me the difference between JVM, server\jvm.dll file and Java HotSpot VM. I have already studied
jvm.dll file from Difference between java.exe, javaw.exe and jvm.dll and
HotSpot from Difference between JVM and HotSpot?
Real differences between "java -server" and "java -client"?
http://www.oracle.com/technetwork/java/whitepaper-135217.html#solid
but still didn't understand the concept. Please give a simple and clear explanation.
java.exe
is the Java launcher. It's a very small program that loads jvm.dll
, and uses JNI (Java Native Interface, an interface inside jvm.dll
that is used to connect C and Java code) to start up the JVM.
The difference between the client and server versions is in the warmup time and optimisation strategy (client takes less time to start up than server, but performs less optimisations). So -server
is generally better for long-running processes, where the longer startup time is amortised, and -client
is generally better for short-lived ones.