JVM
深入了解JVM虚拟机
纵死侠骨香
一个致力于发布更多更好文章的大四青年。
展开
-
JVM————垃圾回收的算法
1. 标记-清除算法(Mark-Sweep)最基础的垃圾回收算法,分为两个阶段,标注和清除。标记阶段标记出所有需要回收的对象,清除阶段回收被标记的对象所占用的空间。缺点:该算法最大的问题是内存碎片化严重,后续可能发生大对象不能找到可利用空间的问题。2. 复制算法(Copying)适合回收新生代按内存容量将内存划分为等大小的两块。每次只使用其中一块,当这一块内存满后将尚存活的对象...原创 2020-02-29 18:19:53 · 157 阅读 · 0 评论 -
JVM————虚拟机的内存分配
一、堆在虚拟机初始化时创建,初始化对象和成员变量,所有的对象和数组都要在堆上分配关于堆的分代堆通常可分为新生代和老年代,新生代包括1个Eden和两个Survivor区,Survivor区又包括from区和to区。minnor GC from区中的数据会和to区进行复制算法,交换数据,当次数满15次会发生full GC将数据移动到老年区为什么最大age是15?因为对象的年...原创 2020-02-27 17:34:47 · 169 阅读 · 0 评论 -
关于类加载机制这些你知道的吗?
一、类加载的过程1、加载(1)通过类的全限定类名来获取该类的二进制字节流(2)将字节流代表的静态存储结构转化为方法区运行时的数据结构(3)在内存中生成一个代表该类的java.lang.Class对象,作为这个类的各种数据的访问入口2、链接确保Class文件的字节流中包含的信息符合虚拟机的要求,不会危害虚拟机的自身安全(1)验证 格式验证 元数...原创 2020-02-27 16:41:48 · 181 阅读 · 0 评论 -
JVM中的几种常量池
点击查看原文中具体案例与解释目录一、class文件常量池字面量1、文本字符串:2、被final修饰的变量。符号引用1、类和接口和全限定名:2、字段的名称和描述符:3、方法的名称和描述符。二、运行时常量池三.字符串常量池四、java基本类型封装类的常量池补充:t.intern()的用法一、class文件常量池在Class文件中除了有类的版本...原创 2020-02-27 16:17:36 · 772 阅读 · 0 评论