java运行机制:
程序员编写*.java文件,使用 javac 编译该文件生成*.class字节码文件,这个字节码文件是与平台无关的,需要解释器解释并执行,java中用于此功能的是JVM,即,java虚拟机。每个平台的JVM都是不同的,但是都提供了相应的接口用于执行字节码文件,JVM解释执行字节码文件之后就会生成对应平台的机器码。JVM在不同的平台上解释执行相同的字节码文件,生成对应不同平台的机器码,这种机制可以把JVM看成上下两部分,向上提供给java字节码程序的接口完全相同,向下适应不同平台的接口互不相同。
相同的字节码文件想在不同的平台上使用是不可能的,只有通过JVM进行转换,将其转成对应平台的机器码才能执行,所以这就是伟大的java跨平台机制的关键点--------JVM机制。
JDK , JRE, JVM
JRE是java运行环境,Java Runtime Environment,其包含了核心虚拟机JVM,类加载器,字节码校验器以及大量的基础类库等其他环境。
JDK是开发环境,包含了JRE。
垃圾回收机制
JAVA程序的内存分配和回收都是由JRE在后台自动进行的。JRE会提供一个后台线程来进行检测和控制,一般都是在CPU空闲或内存不足的时候自动进行垃圾回收,程序员时无法精确控制垃圾回收的时间和顺序。java的堆内存保存类的实例(对象),java虚拟机的堆内存中存放着正在运行的应用程序所建立的所有对象,垃圾回收机制会自动回收不再被程序引用的对象。