JVM学习笔记
wsm0712syb
你觉得呢
展开
-
JVM学习笔记一:Java内存区域
在虚拟机自动内存管理机制的帮助下,java程序员不需要去关心每一个对象的内存回收,不容易出现内存泄露和内存溢出问题,由虚拟机管理内存,看起来不需要程序员知道jvm是如何分配和回收内存的。但是不明白jvm底层的运行机理,对于java程序的优化、以及jvm的一些错误改正就无从谈起。 1. 运行时数据区域JVM所管理下的内存将会包括一下几个运行时数据区域: 程序计数器 虚拟机栈 本地方法栈 方法区 堆 程原创 2015-07-18 10:40:59 · 434 阅读 · 0 评论 -
JAVA内存模型(Java Memory Model)
Java内存模型(JMM),不同于Java运行时数据区,JMM的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中读取数据这样的底层细节。JMM规定了所有的变量都存储在主内存(主存)中,但每个线程还有自己的工作内存(cache),线程的工作内存中保存了被该线程使用到的变量的主内存副本拷贝。线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的变量,工作内存是转载 2016-03-29 16:57:01 · 396 阅读 · 0 评论 -
JVM学习笔记二:GC 垃圾回收
概述学过一点java的都知道,java的GC是有JVM自动执行的。java内存运行时区域的各个部分,其中程序计数器、栈(虚拟机栈、本地方法栈)这些区域随着线程而生随线程灭而亡,这些区域内存分配和回收都有其确定性。Java堆和方法区则不同,这部分内存的分配和回收都是动态的,垃圾回收所关注的就是这部分内存区域。如何判断对象已“死”垃圾收集器在对堆内存进行回收之前,一定要确定内存中的对象中那些存活,那些死原创 2016-04-11 17:14:47 · 477 阅读 · 0 评论 -
JVM学习笔记三:JVM类加载机制
概述Class文件最终需要加载到虚拟机中之后才能运行和使用。虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。类加载过程类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用、卸载 7个阶段。其中验证、准备、解析部分统称为连接。七个阶段发生顺序如原创 2016-04-16 11:05:29 · 671 阅读 · 0 评论