**
一.JAVA虚拟机实例
**
一个Java虚拟机实例的职责是运行一个Java程序。当启动一个Java程序时,一个Java虚拟机实例也就诞生了。当程序结束,Java虚拟机实例也就消亡了。每个Java程序都运行在自己的JVM实例里。
JVM实例通过调用初始类的main()方法来运行一个Java程序,及main()方法是Java程序运行的起点。
<java>
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Hello World");
}
}
在如上的例子里,JVM调用main()来启动一个初始线程,其他的任何线程都是由初始线程启动的。
在Java虚拟机内部有两种线程:守护线程和非守护线程。守护线程通常是由虚拟机自己使用的,比如执行垃圾收集任务的线程。但是,Java程序也可以把它创建的任何线程标记为守护线程。而Java程序中的初始线程——就是开始于main()的那个,是非守护线程。
二.内存管理
![这里写图片描述](https://img-blog.csdn.net/20170318152233008?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmFuZ3h1dQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)