
JVM相关
文章平均质量分 87
程序员波特
全网同名,资深Java开发。专注分享Java后端、中间件、架构设计、云原生、面试等干货知识。关注我,一起成长
展开
-
垃圾收集器与内存分配策略
哪些内存需要回收?什么时候回收?如何回收?原创 2023-10-24 22:55:34 · 160 阅读 · 0 评论 -
10-类加载器
双亲委派模型是描述类加载器之间的层次关系。它要求除了顶层的启动类加载器外,其余的类加载器都应当有自己的父类加载器。(父子关系一般不会以继承的关系实现,而是以组合关系来复用父加载器的代码)原创 2023-10-26 08:00:00 · 166 阅读 · 0 评论 -
09-类加载的过程
类加载过程包括 5 个阶段:加载、验证、准备、解析和初始化。原创 2023-10-25 14:00:00 · 185 阅读 · 0 评论 -
08-类加载的时机
验证、准备、解析 3 个阶段统称为连接。加载、验证、准备、初始化和卸载这 5 个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地开始(注意是“开始”,而不是“进行”或“完成”),而解析阶段则不一定:它在某些情况下可以在初始化后再开始,这是为了支持 Java 语言的运行时绑定。原创 2023-10-25 08:00:00 · 225 阅读 · 0 评论 -
07-类文件结构
Java 源代码首先需要使用 Javac 编译器编译成 .class 文件,然后由 JVM 执行 .class 文件,从而程序开始运行。JVM 只认识 .class 文件,它不关心是何种语言生成了 .class 文件,只要 .class 文件符合 JVM 的规范就能运行。目前已经有 JRuby、Jython、Scala 等语言能够在 JVM 上运行。它们有各自的语法规则,不过它们的编译器 都能将各自的源码编译成符合 JVM 规范的 .class 文件,从而能够借助 JVM 运行它们。原创 2023-10-24 12:00:00 · 127 阅读 · 0 评论 -
06-JVM 性能调优
垃圾收集进行时,虚拟机虽然会对直接内存进行回收, 但是直接内存却不能像新生代、老年代那样,发现空间不足了就通知收集器进行垃圾回收, 它只能等老年代满了后 Full GC,然后“顺便”帮它清理掉内存的废弃对象。在 32 位 JDK 上,1.6G 分配给堆,还有一部分分配给 JVM 的其他内存,直接内存最大也只能在剩余的 0.4G 空间中分出一部分, 如果使用了 NIO,JVM 会在 JVM 内存之外分配内存空间,那么就要小心“直接内存”不足时发生内存溢出异常了。原创 2023-10-24 08:00:00 · 228 阅读 · 0 评论 -
05-内存分配与回收策略
对象的内存分配,就是在堆上分配(也可能经过 JIT 编译后被拆散为标量类型并间接在栈上分配),对象主要分配在新生代的 Eden 区上,少数情况下可能直接分配在老年代,,取决于当前使用的垃圾收集器组合以及相关的参数配置。以下列举几条最普遍的内存分配规则,供大家学习。原创 2023-10-23 14:00:00 · 179 阅读 · 0 评论 -
04-HotSpot 垃圾收集器
HotSpot 虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,虽然我们要对各个收集器进行比较,但并非为了挑选出一个最好的收集器。我们选择的只是对具体应用最合适的收集器。原创 2023-10-23 08:00:00 · 156 阅读 · 0 评论 -
03-垃圾收集策略与算法
程序计数器、虚拟机栈、本地方法栈随线程而生,也随线程而灭;栈帧随着方法的开始而入栈,随着方法的结束而出栈。这几个区域的内存分配和回收都具有确定性,在这几个区域内不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收了。而对于 Java 堆和方法区,我们只有在程序运行期间才能知道会创建哪些对象,这部分内存的分配和回收都是动态的,垃圾收集器所关注的正是这部分内存。原创 2023-10-22 20:36:53 · 321 阅读 · 0 评论 -
02-HotSpot 虚拟机对象探秘
关于Hotspot虚拟机对象其中的细节原创 2023-10-22 20:25:52 · 269 阅读 · 0 评论 -
01-JVM 内存结构
JVM内存结构分析原创 2023-10-22 20:17:50 · 391 阅读 · 0 评论