5:Java虚拟机内部机制概述
一个运行时的jvm实例就为了负责运行一个java程序。
当启动一个程序时,一个jvm实例也随之诞生,该程序关闭退出时,相应的jvm实例也随之消失。
每个java程序都运行于它自己的java虚拟机实例中。
守护线程通常由虚拟机自己使用的线程(比如执行垃圾收集任务的线程)。
main方法所对应的初始线程属于非守护线程
只要还有非守护线程运行,虚拟机实例仍然存活,当该程序中所有的非守护线程都终止时,虚拟机实例将自动退出。
虚拟机中的每个对象都有一个对象锁,被用于协调多个线程访问同一个对象时的同步;
在垃圾回收方面,除了标记对象的引用情况外,垃圾收集器还要区分对象是否调用了终结方法(对于类中声明了终结方法的对象,在回收之前,垃圾收集器必须调用它的终结方法,且对每个对象只能调用一次,但允许终结方法复活)
在java中,数组是真正的对象,也拥有一个与他们的类相关联的Class实例,所有具有相同维度和类型的数组都是同一个类的实例。