随笔分类 -  JVM

摘要:类的生命周期 一个类的完整生命周期如下: 类加载过程 Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚拟机是如何加载这些 Class 文件呢? 系统加载 Class 类型的文件主要三步:加载->连接->初始化。连接过程又可分为三步:验证->准备->解析。 详见:jvm规范5.4 。 加载 阅读全文

posted @ 2021-09-16 16:46 清烟无瘾 阅读(75) 评论(0) 推荐(0)

摘要:jvm原理 深入解析强引用、软引用、弱引用、幻象引用(虚引用) 关于强引用、软引用、弱引用、幻象引用的区别,在很多公司的面试题中经常出现,可能有些小伙伴觉得这个知识点比较冷门,其实大家在开发中经常用到,如new一个对象的时候就是强引用的应用。 在java语言中,除了原始数据类型(boolean、by 阅读全文

posted @ 2021-09-16 16:44 清烟无瘾 阅读(244) 评论(0) 推荐(0)

摘要:JDK 监控和故障处理工具总结 JDK 命令行工具 jps:查看所有 Java 进程 jstat: 监视虚拟机各种运行状态信息 jinfo: 实时地查看和调整虚拟机各项参数 jmap:生成堆转储快照 jhat: 分析 heapdump 文件 jstack :生成虚拟机当前时刻的线程快照 JDK 可视 阅读全文

posted @ 2021-09-14 23:26 清烟无瘾 阅读(75) 评论(0) 推荐(0)

摘要:回顾一下类加载过程 类加载过程:加载->连接->初始化。连接过程又可分为三步:验证->准备->解析。 一个非数组类的加载阶段(加载阶段获取类的二进制字节流的动作)是可控性最强的阶段,这一步我们可以去自定义类加载器去控制字节流的获取方式(重写一个类加载器的 loadClass() 方法)。数组类型不通 阅读全文

posted @ 2021-09-14 23:25 清烟无瘾 阅读(48) 评论(0) 推荐(0)

摘要:类文件结构 一 概述 二 Class 文件结构总结 2.1 魔数(Magic Number) 2.2 Class 文件版本号(Minor&Major Version) 2.3 常量池(Constant Pool) 2.4 访问标志(Access Flags) 2.5 当前类(This Class)、 阅读全文

posted @ 2021-09-14 23:21 清烟无瘾 阅读(58) 评论(0) 推荐(0)

摘要:Java 内存区域详解 写在前面 (常见面试题) 基本问题 拓展问题 一 概述 二 运行时数据区域 2.1 程序计数器 2.2 Java 虚拟机栈 2.3 本地方法栈 2.4 堆 2.5 方法区 2.5.1 方法区和永久代的关系 2.5.2 常用参数 2.5.3 为什么要将永久代 (PermGen) 阅读全文

posted @ 2021-09-14 23:20 清烟无瘾 阅读(61) 评论(0) 推荐(0)

摘要:JVM 垃圾回收 写在前面 本节常见面试题 本文导火索 1 揭开 JVM 内存分配与回收的神秘面纱 1.1 对象优先在 eden 区分配 1.2 大对象直接进入老年代 1.3 长期存活的对象将进入老年代 1.4 动态对象年龄判定 1.5 主要进行 gc 的区域 2 对象已经死亡? 2.1 引用计数法 阅读全文

posted @ 2021-09-14 23:17 清烟无瘾 阅读(99) 评论(0) 推荐(0)