logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

JVM是如何判断对象可回收?常见的GC算法有哪些?

一、在java中如何判断对象是否死亡?死亡意味着可以被回收1、引用计数法算法:给每一个对象添加一个引用计数器,当一个引用指向对象,计数器值加一,当一个引用失效,计数器减一,判断计数器是否为0,确定对象是否可用。问题:很难解决对象间的互相引用。2、引用不可达算法:通过可达性分析判断对象是否存活。通过 GC Roots对象作为起始点,开始向下搜索,当一个对象到GC Roots没有任何引用链相连时,则证

#jvm#java
Java类加载的过程

一、类加载过程:1.加载:将class文件导入内存加载时类加载过程的第一个阶段,在加载阶段,虚拟机需要完成以下三件事情:1、通过一个类的全限定名来获取其定义的二进制字节流。2、将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。3、在内存生成一个代表这个类的java.lang.Class对象(hotspot虚拟机Class对象存储在方法区),作为对方法区中这些数据的访问入口。加载阶段完成

#jvm#java
Java字节码文件指令操作码助记符含义

Java二进制指令代码解析小注:去年在看《深入解析JVM》书的时候做的一些记录,同时参考了《Java虚拟机规范》。只是对指令的一些列举,加入了一些自己的理解。可以用来查询。Java二进制指令代码解析Java源码在运行之前都要编译成为字节码格式(如.class文件),然后由ClassLoader将字节码载入运行。在字节码文件中,指令代码只是其中的一部

#java#jvm#虚拟机
Java虚拟机(JVM)运行时内存区域划分详解

Java虚拟机(JVM)内存区域划分详解最近一直没有怎么更新自己的博客,主要是由于老哥公司最近的一个招标项目忙得焦头烂额,心力憔悴(ಥ_ಥ),趁着项目的空档期来重构一下以前的一篇关于jvm内存区域划分的博客,仔细阅读了一下之前的博客,大量的文字叙述可能对于读者来说,看到的第一眼就不想读下去了,吸收各方面的意见,为了让初学者更好的理解,趁着这段时间还比较自由,就来重构一下这篇博客。一、j...

#jvm#java#虚拟机
到底了