04 2021 档案
摘要:一、Class常量池解析 定义:Class常量池可以理解为是Class文件中的资源仓库。 内容:Class文件中除了包含类的版本、字段、方法、接口等描述信息外, 还有一项信息就是常量池,用于存放编译期生成的各种字面量和符号引用。 我们可以通过一个命令来查看我们字节码文件的内容: 字面量 定义:字面量
阅读全文
摘要:一、jps【查看进程id】 当我们启动了一个web应用程序时,可以通过jps查看其进程id,接着用各种jdk自带命令优化应用。 使用方式: 二、jmap【查看内存信息,实例个数以及占用内存大小】 查看内存信息 num :序号 instances :实例数量 bytes :占用空间大小 class n
阅读全文
摘要:一、G1垃圾收集器简介 为什么单独写一篇文章来记录G1垃圾收集器的学习过程呢?因为上一篇文章主要都是针对8G内存以下的服务器来进行总结的,G1的特点主要是针对大内存的机器,讲道理一般的公司也基本上用不到那么大的内存,所以这篇文章先单独记录一下吧~ 简介:G1 (Garbage-First)是一款面向
阅读全文
摘要:一、垃圾回收算法概览 垃圾回收算法主要根据对象存活周期的不同将内存分为几部分。一般将java堆分为新生代和老年代,这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。 比如在新生代中,每次收集都会有大量对象(近99%)死去,所以可以选择复制算法,只需要付出少量对象的复制成本就可以完成每次垃圾收集
阅读全文
摘要:一、对象创建的过程 我们先画一个流程图来看一下对象在创建的过程中,经历了哪些步骤: 类加载检查 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那就会先执行相应的类加载过程。 分配内存
阅读全文