
s15 JVM虚拟机
文章平均质量分 96
JVM虚拟机
檀越@新空间
I'm good at | 商务合作请联系工作室微信 13113691357
展开
-
【Jvm基础篇4】类加载
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。原创 2021-11-26 07:02:11 · 272 阅读 · 0 评论 -
【Jvm基础篇1】内存管理
除如何划分可用空间之外,还有另外一个需要考虑的问题是对象创建在虚拟机中是非常频繁的行为,即使是仅仅修改一个指针所指向的位置,在并发情况下也并不是线程安全的,可能出现正在给对象 A 分配内存,指针还没来得及修改,对象 B 又同时使用了原来的指针来分配内存的情况。解决这个问题有两种方案,一种是对分配内存空间的动作进行同步处理–实际上虚拟机采用 CAS 配上失败重试的方式保证更新操作的原子性;原创 2021-11-23 09:16:49 · 234 阅读 · 0 评论 -
【Jvm系列】Jvm调优篇
该类所有的实例都已经被回收,也就是 Java 堆中不存在该类的任何实例。加载该类的 ClassLoader 已经被回收。该类对应的 java.lang.Class 对象没有在任何地方被引用,无法在任何地方通过反射访问该类的方法。JVM 的安全点(Safe Point)是指在程序执行过程中,JVM 会选取一些特定位置作为安全点,当线程到达这些位置时,JVM 会确保线程的栈和堆处于稳定状态,使得线程能够被安全地挂起。安全点的存在是为了支持 Java 的线程安全机制和垃圾回收。原创 2021-11-18 02:54:54 · 1461 阅读 · 1 评论 -
【Jvm系列】Jvm基础篇
除如何划分可用空间之外,还有另外一个需要考虑的问题是对象创建在虚拟机中是非常频繁的行为,即使是仅仅修改一个指针所指向的位置,在并发情况下也并不是线程安全的,可能出现正在给对象 A 分配内存,指针还没来得及修改,对象 B 又同时使用了原来的指针来分配内存的情况。解决这个问题有两种方案,一种是对分配内存空间的动作进行同步处理–实际上虚拟机采用 CAS 配上失败重试的方式保证更新操作的原子性;原创 2021-11-17 10:21:52 · 2627 阅读 · 13 评论 -
【JVM系列】Full GC(完全垃圾回收)的原因及分析
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。原创 2024-07-07 08:30:00 · 37887 阅读 · 9 评论 -
【JVM系列】内存泄漏
内存泄漏发生在程序未能释放不再使用的内存时。在一些语言中,如 Java,垃圾回收器(GC)会定期清理无用对象,但并非所有内存泄漏都能被垃圾回收器发现。例如,静态变量、缓存或持有的长生命周期对象可能不会及时释放,导致内存泄漏。原创 2024-07-04 08:30:00 · 35665 阅读 · 11 评论 -
【JVM系列】JVM调优
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。原创 2024-07-01 08:45:00 · 35439 阅读 · 7 评论 -
【JVM系列】关于静态块、静态属性、构造块、构造方法的执行顺序
当类被加载时,会首先执行静态代码块和静态变量的初始化。静态代码块和静态变量的执行顺序只跟代码中出现的顺序有关,且静态变量或静态方法中如果调用构造方法,可以把构造当做一个普通方法来看,但会先执行一遍代码块。接着,会执行父类的静态代码块和静态变量初始化。然后,执行子类的静态代码块和静态变量初始化,实例化父类时,会先执行父类的实例变量初始化,然后执行父类的构造方法实例化子类时,会先执行子类的实例变量初始化,然后执行子类的构造方法在构造方法执行之前,会先执行非静态代码块。原创 2024-04-21 11:13:40 · 14224 阅读 · 144 评论 -
【JVM调优系列】如何导出堆内存文件
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。原创 2024-01-17 09:00:00 · 12416 阅读 · 8 评论 -
【JVM系列】Class文件分析
Java 源代码经过编译器编译后产生的二进制文件称为 Java 类文件。这些类文件包含了与 Java 源代码对应的字节码,而字节码是一种中间代码,介于源代码和机器码之间。Java 类文件通常具有的扩展名。当你编写 Java 程序时,你首先使用文本编辑器(如 Java 的开发工具,如 Eclipse、IntelliJ IDEA 等)编写源代码文件(扩展名为)。然后,你使用 Java 编译器(命令)将源代码编译成字节码,生成对应的 Java 类文件。最后,Java 虚拟机(JVM)会执行这些类文件中的字节码。J原创 2023-12-04 09:30:00 · 15338 阅读 · 93 评论 -
【JVM系列】GCeasy使用
GCeasy 是一个基于 Web 的垃圾回收日志分析工具,可以用于分析 JVM 的垃圾回收日志,提供可视化的分析结果和建议。GCeasy 可以分析所有主流的垃圾回收器,包括 CMS、G1、Parallel 和 Serial 等,支持多种垃圾回收日志格式,包括 GC log、Jstat log 和 JMX 等。使用 GCeasy 可以帮助开发人员和运维人员快速定位 JVM 垃圾回收问题,包括内存泄漏、频繁 Full GC、停顿时间过长等常见问题。原创 2023-07-25 16:13:32 · 30231 阅读 · 24 评论 -
【Jvm基础篇3】Class 文件结构
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。原创 2021-11-23 09:57:28 · 261 阅读 · 0 评论 -
【Jvm基础篇2】虚拟机执行子系统
在发生 Minor GC 之前,虚拟机必须先检查老年代最大可用的连续空间是否大于新生代所有对象总空间,如果这个条件成立,那这一次 Minor GC 可以确保是安全的。如果不成立,则虚拟机会先查看-XX: HandlePromotionFailure 参数的设置值是否允许担保失败(Handle Promotion Failure);如果允许,那会继续检查老年代最大可用的连续空间是否大于历次晋升到老年代对象的平均大小,如果大于,将尝试进行一次 Minor GC,尽管这次 Minor GC 是有风险的;原创 2021-11-23 09:31:31 · 416 阅读 · 0 评论 -
【Jvm调优篇5】Jvm常见问题
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。原创 2022-03-17 23:04:39 · 7323 阅读 · 0 评论 -
【Jvm调优篇4】JVM参数
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。原创 2022-03-17 22:59:00 · 6242 阅读 · 0 评论 -
【Jvm调优篇3】JVM调优
什么是对象逃逸?对象逃逸优化有哪几种?逃逸分析的基本原理是:分析对象动态作用域,当一个对象在方法里面被定义后,它可能被外部方法所引用,例如作为调用参数传递到其他方法中,这种称为方法逃逸;甚至还有可能被外部线程访问到,譬如赋值给可以在其他线程中访问的实例变量,这种称为线程逃逸;从不逃逸、方法逃逸到线程逃逸,称为对象由低到高的不同逃逸程度。原创 2022-03-17 22:52:27 · 913 阅读 · 0 评论 -
【Jvm调优篇2】垃圾回收器
在发生 Minor GC 之前,虚拟机必须先检查老年代最大可用的连续空间是否大于新生代所有对象总空间,如果这个条件成立,那这一次 Minor GC 可以确保是安全的。如果不成立,则虚拟机会先查看-XX: HandlePromotionFailure 参数的设置值是否允许担保失败(Handle Promotion Failure);如果允许,那会继续检查老年代最大可用的连续空间是否大于历次晋升到老年代对象的平均大小,如果大于,将尝试进行一次 Minor GC,尽管这次 Minor GC 是有风险的;原创 2022-03-17 22:41:51 · 649 阅读 · 0 评论 -
【Jvm调优篇1】垃圾回收基础
该类所有的实例都已经被回收,也就是 Java 堆中不存在该类的任何实例。加载该类的 ClassLoader 已经被回收。该类对应的 java.lang.Class 对象没有在任何地方被引用,无法在任何地方通过反射访问该类的方法。JVM 的安全点(Safe Point)是指在程序执行过程中,JVM 会选取一些特定位置作为安全点,当线程到达这些位置时,JVM 会确保线程的栈和堆处于稳定状态,使得线程能够被安全地挂起。安全点的存在是为了支持 Java 的线程安全机制和垃圾回收。原创 2022-03-17 22:36:36 · 813 阅读 · 0 评论