JVM
文章平均质量分 91
bestcxx
网络让知识自由流动
展开
-
7.0、JVM-类加载器、双亲委派模型、自定义类加载器
Java类加载器原创 2022-12-15 00:46:06 · 348 阅读 · 0 评论 -
3.2、查看 JVM 垃圾回收器类型的三个方式
文章目录引题前言——参数信息命名上的差异查看 垃圾回收器类型 的三个方法方法一 PrintCommandLineFlags方法二(通过GC日志和堆信息)方法三(通过 jmap -heap vmid)JDK 版本和默认垃圾回收器引题不同版本 JVM 默认使用的 垃圾回收器是不同的,可以通过一些参数进行选择,那么我们如何得知 JVM 使用的是那些垃圾回收器呢?前言——参数信息命名上的差异本文介绍通过 JVM 的参数信息来识别垃圾回收器,这里特别强调的是参数信息中命名和垃圾回收器的名字不是完全对应的。原创 2020-08-02 00:42:29 · 1324 阅读 · 0 评论 -
3.3、人为制造“JVM 垃圾回收事件”
文章目录前言增加 VM 参数方式一:System.gc();方式二:减小堆大小并创建多个大对象垃圾回收和heap信息前言学习 JVM 垃圾回收器时,可以手动制造一些垃圾回收事件,便于理论联系实际。增加 VM 参数通过增加 VM 参数,垃圾回收过程会打印在控制台-verbose:gc -XX:+PrintGCDetails 方式一:System.gc(); //手动触发GC System.gc();方式二:减小堆大小并创建多个大对象public class GcTest {原创 2020-08-02 00:32:57 · 237 阅读 · 0 评论 -
3.1、JVM学习——GC日志含义与配置
GC 日志可以提供虚拟机各分代垃圾回收的情况,需要注意的是,不同的垃圾回收器在GC 日志中名字并不相同。原创 2019-11-24 09:28:06 · 483 阅读 · 0 评论 -
3.4、JVM 学习——Object.finalize()方法
文章目录前言Obejct.finalize()方法覆盖从写 finalize() 与 JVM 垃圾回收命令行 jstack 查看 JVM 后台驻留线程 Finalizer测试方法finalize() 引发内存溢出最佳实践参考资料前言世界观第一,体能第二,技术第三。Obejct.finalize()方法JDK 中 Object 类有一个空实现的方法 finalize()。但是你无法直接...原创 2019-10-10 09:15:19 · 321 阅读 · 0 评论 -
4.0、JVM学习——JVM性能监控与故障处理工具
文章目录前言SUN公司的礼物命令行工具jps:虚拟机进程状况工具jstat:虚拟机统计信息监视工具jinfo:Java 配置信息工具jmap:Java 内存映像工具jhat:虚拟机堆转储快照分析工具jstack:Java 堆栈跟踪工具可视化工具JConsoleVisualVM参考资料前言世界观第一,体能第二,技术第三。SUN公司的礼物作为 HotSpot JDK 的附属功能,SUN ...原创 2019-10-09 09:01:35 · 255 阅读 · 0 评论 -
3.0、JVM 学习——垃圾回收器
文章目录前言本文基于 HotSpot 虚拟机JVM 内存模型中的堆(Heap)堆分为新生代和老年代新生代 和 Minor GC老年代和 Major GC/FullGC永久代和Major GC/Full GC垃圾回收器前言体能状态先于精神状态,习惯先于决心,聚焦先于喜好。本文基于 HotSpot 虚拟机本文基于 HotSpot 虚拟机JVM 内存模型中的堆(Heap)JVM 内...原创 2019-08-14 08:58:11 · 359 阅读 · 1 评论 -
12.1、JVM 学习——Java 内存模型与8种基本操作、原子性、可见性、有序性
文章目录前言Java 内存模型JDK 1.5 和 Java 内存模型主内存和工作内存所有的公共变量都需要在主内存存储工作内存存储主内存的备份和线程私有的信息主内存和工作内存的相互关系Java 内存模型的8种基本操作主内存的操作工作内存的操作——和执行引擎的交互主内存和工作内存的同步操作主内存到工作内存工作内存到主内存参考资料前言体能状态先于精神状态,习惯先于决心,聚焦先于喜好。Java ...原创 2019-07-23 07:58:35 · 676 阅读 · 0 评论 -
12.0、JVM 学习——操作系统内存模型与高速缓存一致性
文章目录前言无法避免的I/O——内存、高速缓存(Cache)前言体能状态先于精神状态,习惯先于决心,聚焦先于喜好。无法避免的I/O——内存、高速缓存(Cache)多线程是为了尽可能的提高处理器的运算利用效率,但是处理器本身并不能存储——这不是它的职能。处理器至少需要和内存进行交互,比如读取运算数据、存储运算结果等。由于计算机的处理器与存储设备的运算速度有几个数量级的差距,所以现代...原创 2019-07-22 08:45:06 · 332 阅读 · 0 评论 -
再论 “Java 是值传递还是地址传递?”
鉴于你无法通过形参真正的操作一个对象的真实地址 所以,你不应该通过形参方法进行实例化工作(new一个对象),或者 =null 如果你想提供一个类似的方法,要么直接操作全局变量,要么提供返回值思考一个工厂方法,产生一个对象,然后返回这个新建对象当然,如果只是修改对象的属性值,这个是可以影响方法外的对象的.总之,不要认为你可以通过形参修改方法外对象在内存中的地址.........原创 2019-04-29 21:33:46 · 1031 阅读 · 0 评论 -
““+new String(““) 创建了几个 String 对象?—— JDK1.5优化和 JDK1.7字符串常量池转移到Java Heap
在 JVM 规范中,字符串常量池是一个全局配置,位于JVM模型的方法区中.它有另一个名字叫“非堆”.但是在具体实现上,并没有严格按照这个标准.原创 2019-09-04 08:15:52 · 570 阅读 · 0 评论 -
Java 虚拟机学习 不断积累
·Java虚拟机运行期的几个概念Java虚拟机运行期的几个概念,方法区:存储类,静态变量,其他一些运行时参数;堆:存对象和数组;方法区和堆是共享的。程序计数器:记录代码运行到那一行;虚拟机栈和本地方法栈分别服务于Java虚拟机的方法调用和本地系统的Native方法调用。后面三个都是线程私有的。·Java 虚拟机内存分配方式分为指针碰撞和空闲列表Java 虚拟机内存分配方式分...原创 2017-07-28 12:41:08 · 591 阅读 · 0 评论