A Java Virtual Machine is a runtime environment required for
execution of a Java application. Every Java application runs inside a runtime
instance of some concrete implementation of abstract specifications of JVM. It
is JVM which is 'platform independent'.
A runtime instance of the Java virtual machine has a clear mission
in life: to run one Java application. When a Java application starts, a runtime
instance is born. When the application completes, the instance dies. If you
start three Java applications at the same time, on the same computer, using the
same concrete implementation, you'll get three Java virtual machine instances.
Each Java application runs inside its own Java virtual machine.
A Java virtual machine instance starts running its application by
invoking the
main()
method of
some initial class. The main()
method
must be public, static, return void
, and accept one parameter: a String
array. Any
class with such a main()
method can
be used as the starting point for a Java application. public class SampleProgram {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("Hello World");
}
}
The
main()
method of
an application's initial class serves as the starting point for that
application's initial thread. Inside the Java virtual machine, threads come in
two flavours: daemon and non- daemon. A daemon thread is
ordinarily a thread used by the virtual machine itself, such as a thread that
performs garbage collection. The application, however, can mark any threads it
creates as daemon threads. The initial thread of an application, the one that
begins at main()
is a non-
daemon thread.
A Java application continues to execute (the virtual machine
instance continues to live) as long as any non-daemon threads are still
running. When all non-daemon threads of a Java application terminate, the
virtual machine instance will exit. If permitted by the security manager, the
application can also cause its own demise by invoking the
exit()
method of
class Runtime
or System
.
In the
SampleProgram
application
previous, the main()
method
doesn't invoke any other threads. After it prints out the command line arguments, main()
returns.
This terminates the application's only non-daemon thread, which causes the
virtual machine instance to exit.
Happy Reading
No comments:
Post a Comment