Ok. It means when I run any Application a separate JVM will be Running.No. It means every time you execute the 'java' command you start a new JVM.
So , What is the cost for those JVM running?On what platform? With what arguments?
How much memory they consume, and CPU usage.Is there a reason why your existing operating system utilities aren't telling you that? It is highly system-dependent and indeed invocation-dependent.
Why JVM is loaded per Application?See above.
Why JVM does not perform class loading mechanism per Application?Because class loaders do. You've already been told that.
Does JVM is capable to run multiple Applicati?Yes, if you code one of them to start the other, or provide a starter application that starts them both.
IF single JVM there will be running multiple Application and JVM will separate the memory allocated to eachOnly if they are loaded by different class loaders. Which is one reason for having them.