JVM
文章平均质量分 86
LittleSkey
如果故障永远不发生,那么生活将变得更加简单
展开
-
JVM性能监控与分析工具
如何定位系统问题分析内容GC日志 堆转储快照 线程快照 运行日志分析工具JVM性能相关的6个常用的JDK命令jps:查询JVM中的所有进程,找出将要操作的PID,是所有命令的基础 jstat:查看相应JVM进程的gc、类加载卸载信息,是没有GUI界面查看JVM运行数据的首选 jinfo:查看和在运行期动态修改JVM配置参数 jmap:生成堆转储快照和比较占内存的对象 jhat:配合jmap分析堆转储日志,除非没有其他工具可做这个事儿,否则就不用该工具 jstack:生成线程原创 2020-11-15 16:35:56 · 515 阅读 · 0 评论 -
Java类加载机制
什么是类的加载 类加载器(ClassLoader),顾名思义,即加载类的东西。在我们使用一个类之前,JVM需要先将该类的字节码文件(.class文件)从磁盘、网络或其他来源加载到内存中,并对字节码进行解析生成对应的Class对象,这就是类加载器的功能。我们可以利用类加载器,实现类的动态加载。从上图可以看,java文件通过编译器变成了.class文件,接下来类加载器又将这些.class文件加载到JVM中。其中类装载器的作用其实就是类的加载。类加载的过程...原创 2020-11-03 15:51:40 · 241 阅读 · 0 评论 -
深入理解Java中的AQS
核心原理AQS就是基于CLH队列,用volatile修饰共享变量state,线程通过CAS去修改状态符,成功则获取锁成功,失败则进入等待队列,等待被唤醒。原创 2020-10-18 10:11:40 · 545 阅读 · 0 评论 -
Java Synchronized锁
锁存在哪里对象在内存中的布局分为三块区域:对象头、实例数据和对齐填充。 synchronized用的锁是存在Java对象头里的 Hotspot虚拟机的对象头主要包括两部分数据:Mark Word(标记字段)、Klass Pointer(类型指针),数组会多1字宽(32位:4字节)来存储数组长度 其中Klass Pointer是对象指向它的类元数据的指针,虚拟机通过这个指针来确定这个对象是哪个类的实例;Mark Word用于存储对象自身的运行时数据,它是实现轻量级锁和偏...转载 2020-10-14 08:09:26 · 269 阅读 · 1 评论 -
Java虚拟机运行时数据区域
Java虚拟机运行时数据区域原创 2016-12-20 10:51:25 · 573 阅读 · 0 评论 -
JVM垃圾收集器
JVM垃圾收集器原创 2016-12-20 14:42:33 · 746 阅读 · 1 评论