JVM初识
###JVM初体验 基本概念:JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。 JVM大致可分为三部分 1.Java代码的执行 代码执行也可以分为三个过程 代码编译为class,命令javac 转载class,命令ClassLoader 执行class,亦可分为解释执行与编译执行两部分,编译执行可分为client complier与server compiler 2.内存管理 内存管理大致分为四个部分 内存空间:包含方法区、堆,本地方法栈、pc寄存器 内存分配:有堆上分配、TLAB分配、栈上分配 内存回收:1.用到的算法有:Copy、Mark-Sweep、Mark-Compact,2.sun jdk的分代回收可分为:新生代可用的GC、Minor GC触发机制以及日志格式、旧生代可用的GC、Full Gc触发机制以及日志格式 内存状况分析:jconsole、visualvm、jstat、jmap、MAT 3.线程资源同步与交互机制 线程资源同步:可分为线程资源执行机制和线程资源同步机制,线程资源同步机制:Sychronized的实现机制,lock/unlock实现机制 线程交互机制:Object.wait/notify/notifyall