随笔分类 -  jvm系列

对jvm的入门介绍,涉及内存管理、垃圾回收,虚拟机工具,性能调优,class文件解析、类加载等方面的内容
摘要:确定垃圾 引用计数(存在循环引用问题) 根可达算法 常见的垃圾回收算法 标记清除算法-位置不连续,产生碎片 拷贝算法- 没有碎片,浪费空间 标记压缩-没有碎片,效率偏低(多线程需要进行线程同步,单线程效率本来就低) JVM内存分代模型(用于分代垃圾回收算法) a. 部分垃圾回收器使用的模型 b. 新 阅读全文
posted @ 2020-10-14 15:16 三杯然诺 阅读(115) 评论(0) 推荐(0)
摘要:垃圾回收我们主要从以下三个方面进行描述 垃圾对象的判断 目前判断对象为垃圾对象有两种方法:引用计数法,可达性分析法,目前普遍是的是可达性分析法 可达性分析法的实现原理: 定义gcroot一直往下找,如果能找到对象,证明该对象在使用,如果找不到该对象,标记该对象应该回收。上图中栈作为gcroot只是其 阅读全文
posted @ 2018-04-26 20:49 三杯然诺 阅读(372) 评论(0) 推荐(0)
摘要:关于对象,我们需要面对的问题主要有对象的创建,对象在内存中的布局,对象的结构,对象的访问定位。 对象的创建 对象的创建过程如下图所示: 其主要步骤有:给对象分配内存,初始化对象,执行构造方法。 在对象创建过程中出现的线程安全性问题由线程同步和本地线程分配缓冲来解决 对象在内存中的布局 a、指针碰撞 阅读全文
posted @ 2018-04-24 15:45 三杯然诺 阅读(162) 评论(0) 推荐(0)
摘要:jvm内存区域总体分为5大块:方法区,java堆,虚拟机栈,本地方法栈,程序计数器,按照线程来分的话又分为线程共享区和线程独占区 程序计数器: a、程序计数器是一块较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器 b、此区域是唯一一个在java虚拟机规范中没有任何outofmemorye 阅读全文
posted @ 2018-04-24 11:58 三杯然诺 阅读(189) 评论(0) 推荐(0)
摘要:我们首先来了解一下jdk,jre,jvm的之间的关系 jvm用于运行字节码,如果我们仅仅用于运行java程序,仅部署jre即可,如果我们需要进行java开发则需要jdk环境 java结构内容: java体系结构关系如下图所示: java程序调用java api经过编译,生成字节码文件,将字节码文件交 阅读全文
posted @ 2018-04-24 10:04 三杯然诺 阅读(148) 评论(0) 推荐(0)