jvm原理
privatechen
这个作者很懒,什么都没留下…
展开
-
JMM相关
自我记录 自我记录 本文来自https://blog.csdn.net/suifeng3051/article/details/52611310 这里摘抄了我不太熟悉的地方。。JVM对Java内存模型的实现线程之间同步的方法:共享内存、消息传递一个本地变量如果是原始类型,那么它会被完全存储到栈区。 一个本地变量也有可能是一个对象的引用,这种情况下,这个本地引用会被存储到栈中,...转载 2018-05-02 17:41:42 · 150 阅读 · 0 评论 -
JVM GC相关
自我记录 自我记录。。。GC算法A、标记清理(如下图,回收后,空间不连续,有空间碎片产生)B、标记整理(无空间碎片)C、复制(无空间碎片)GC中的收集器类型大致有7种:针对新生代的有这三种:Serial、ParNew、Parallel Scanvage针对老年代的有这三种:Serial Old、Parallel Old、CMS还有一种G1(Garbage-First),新老通吃,优先回收价值最大的...原创 2018-05-11 14:36:07 · 197 阅读 · 0 评论 -
JVM运行内存模型
自我记录 自我记录。。。首先,JVM内存模型图:线程私有的有:程序计数器、虚拟机栈、本地方法栈线程共享的有:堆、方法区下面一个个解释下。。程序计数器:相当于一个指挥官,指挥程序应该怎么执行,保存的是需要执行的指令的地址,这个指挥官只能指挥非Native方法,当方法是native时,那么他就不能指挥方法去哪里了,因为指挥官里只保存了undefined虚拟机栈:这个里面包含的东西有点多,它是方法执行...原创 2018-05-13 20:35:02 · 188 阅读 · 0 评论 -
jvm类加载机制
加载 -> 验证 -> 准备 -> 解析 -> 初始化 -> 使用 -> 卸载有且只有五种状况需要立即进行类的初始化操作:1、2、3、4、5、这几种情形下,称为对类的主动引用,除此之外的引用类的方法均称为被动引用!常量传播优化!!注意:当一个类初始化的时候,要求它的父类都已初始化,而当接口初始化时,并不要求它的父接口初始化!...原创 2018-06-12 17:52:30 · 118 阅读 · 0 评论 -
java编译过程
摘自:深入理解JVM虚拟机A、解析与填充符号表B、注解处理C、分析与字节码生成A、解析与填充符号表(parseFiles):1、词法、语法分析词法分析:将源代码的字符流转化为标记集合(Token),单个字符是程序编写过程的最小元素,而标记则是编译过程的最小元素,关键字、变量名、字面量、运算符都可以成为标记语法分析:根据Token序列构造抽象语法树的过程2、填充符号表完成语法分析和词法分析后,就是填...原创 2018-06-10 21:29:06 · 2304 阅读 · 0 评论 -
java命令--jmap命令使用
转自作者:milkty源地址:https://www.cnblogs.com/kongzhongqijing/articles/3621163.htmljava命令--jmap命令使用jdk安装后会自带一些小工具,jmap命令(Java Memory Map)是其中之一。主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节。jmap命令可以获得运...转载 2019-04-05 19:46:02 · 447 阅读 · 0 评论