
JVM学习
文章平均质量分 62
幺幺满地乱爬
这个作者很懒,什么都没留下…
展开
-
GC算法详解一(标记清除算法)
GC算法(标记清除算法)简介标记清除算法就如他字面上的意思一样,对程序中的非活动对象进行标记,随后清楚。通过这两个阶段令不能利用的空间重新得到利用。标记阶段:就是对堆上的对象进行遍历并在便利过程中对活动对象以及活动对象所能引用的对象进行活动状态标记。遍历阶段根据方式不同可以分为深度优先和广度优先,由于深度优先在内存的占用上比广度小,一般选择深度优先遍历。清除阶段:这个阶段会对堆上的对象进行一次遍历(相较于标记阶段的深度优先更像遍历数组的模式)这期间会将非活动对象加入到空闲空间链表中作为空闲的块。这个原创 2021-03-02 20:46:25 · 674 阅读 · 0 评论 -
java模拟JVM (访问标记以及继承关系的解析)
java模拟JVM (访问标记以及继承关系的解析)接下来就是accessflag以及class信息和interfaces的解析了这块都很简单直接贴代码首先是对之前的classfilereader方法类添加一个新的方法用来解析ACCESSFLAG/** * ACC_PUBLIC = 0x0001; * ACC_FINAL = 0x0010; * ACC_SUPER = 0x0020; * ACC_INTERFACE = 0x0200; * A原创 2020-08-22 20:41:12 · 178 阅读 · 0 评论 -
java模拟jvm(常量池的解析)
java实现字节码解析1(常量池的解析)大体的思路就是按照之前写的那篇字节码解析里面所描述的方式。https://blog.youkuaiyun.com/qq_43147121/article/details/108035464这里面有几个要我们用到位运算来处理基本类型的地方,可以看我前面那篇Java基本类型的博客。https://blog.youkuaiyun.com/qq_43147121/article/details/108145123下面直接贴代码:1.这是一个工具类,主要就是将byte数组转换为各种基本类型原创 2020-08-21 17:54:35 · 189 阅读 · 0 评论 -
java的基本类型在计算机内的存储
java的基本类型在计算机内的存储形式Java内一共为我们提供了八种基本类型分别是,byte,short,int,long,float,double以及boolean首先我们要明白一个单位也就是bit比特是计算机存储的最小单位占用一位可以是0或者1.而我们其他的基本类型都是由不同的位数组成也就是由指定长度的bit串所描述。在之前动手解析class文件那个文章中可以看出来,jvm所规定的U1,U2,U4,U8这几种类型的基本单位就是字节分别是一个字节到8个字节的占位。字节byte是由八个bit组成,原创 2020-08-21 13:07:52 · 177 阅读 · 0 评论 -
用一个例子来做说明字节码文件的解析
字节码文件解析最近有回过头看了一下jvm并且去看了一下他的一部分c语言的源码。打算尝试用Java写一个分析字节码文件的小程序。这里写了一个class来手动分析一下字节码的解析过程public class jvmclasstest { public int i = 1; public static Integer a = 2; private String s = "caohao"; public static void main(String[] args) {原创 2020-08-16 16:14:23 · 346 阅读 · 0 评论