JVM

JVM学习笔记——内存模型篇

JVM学习笔记——内存模型篇 在本系列内容中我们会对JVM做一个系统的学习,本片将会介绍JVM的内存模型部分 我们会分为以下几部分进行介绍: 内存模型 乐观锁与悲观锁 synchronized优化 内存模型 这一小节我们来详细介绍一下内存模型和内存模型的三个特性 内存模型简介 首先我们来简单介绍一下 ... »

万字详解JVM,让你一文吃透

摘要:本文将带大家详细地了解关于JVM的一些知识点。 本文分享自华为云社区《【JVM】关于JVM,你需要掌握这些 | 一文彻底吃透JVM系列》,作者: 冰 河 。 JDK 是什么? JDK 是用于支持 Java 程序开发的最小环境。 Java 程序设计语言 Java 虚拟机 Java API类库 J ... »

JVM学习笔记——类加载和字节码技术篇

JVM学习笔记——类加载和字节码技术篇 在本系列内容中我们会对JVM做一个系统的学习,本片将会介绍JVM的类加载和字节码技术部分 我们会分为以下几部分进行介绍: 类文件结构 字节码指令 编译期处理 类加载阶段 类加载器 运行期优化 类文件结构 这一小节我们将简单介绍一下类的文件结构部分,简单阅读一下 ... »

详细了解JVM运行时内存

详细了解JVM运行时内存 1.程序计数器 概念 程序计数器也叫作PC寄存器,是一块很小的内存区域,可以看做是当前线程执行的字节码的行号指示器。字节码的解释工作就是通过改变程序计数器里面的值来获得下一条需要执行字节码的指令。 特点 Pc寄存器表现为一块内存,功能是存放伪指令,确切的说是存放的将要执行指 ... »

【JVM】关于JVM,你需要掌握这些 | 一文彻底吃透JVM系列

写在前面 最近,一直有小伙伴让我整理下关于JVM的知识,经过十几天的收集与整理,初版算是整理出来了。希望对大家有所帮助。 JDK 是什么? JDK 是用于支持 Java 程序开发的最小环境。 Java 程序设计语言 Java 虚拟机 Java API类库 JRE 是什么? JRE 是支持 Java ... »

binghe001 JVM

JVM调优OutOfMemoryError异常分析

目录 1.Java 堆溢出 1.1 设置JVM参数 1.2 测试代码 1.3 运行OOM日志 2.Java栈、本地方法栈溢出 2.1 设置JVM参数 2.2 测试代码 2.3 运行OOM日志 2.4 Java虚拟机OOM异常 3.Java 运行常量池溢出 3.1 设置JVM参数-注意区分 »

JVM学习笔记——内存结构篇

JVM学习笔记——内存结构篇 在本系列内容中我们会对JVM做一个系统的学习,本片将会介绍JVM的内存结构部分 我们会分为以下几部分进行介绍: JVM整体介绍 程序计数器 虚拟机栈 本地方法栈 堆 方法区 直接内存 JVM整体介绍 我们在正式开始学习JVM之前当然需要先简单认识一下JVM了 JVM简述 ... »

JVM默认时区为:Asia/Shanghai与java程序中GMT+08不一致异常

目录 经过排查,发现是JVM的默认时区为 JVM中设置为 在Spring程序中配置了spring.jackson.time-zone=GMT+08时,部分时间相差一个小时问题,且是固定的时间出现了固定的时差问题。 经过排查,发现是JVM的默认时区为 Asia/Shanghai,两者不一致 »

java中GC的日志认识详解

不同的垃圾回收器 他们的日志都是完成不一样的,看懂日志是解决和发现问题的重中之重。 Parallel Scavenge + Parallel Old 日志 启动参数 -XX:+UseParallelGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+ ... »

JAVA系列之JVM内存调优

一、前提 JVM性能调优牵扯到各方面的取舍与平衡,往往是牵一发而动全身,需要全盘考虑各方面的影响。在优化时候,切勿凭感觉或经验主义进行调整,而是需要通过系统运行的客观数据指标,不断找到最优解。同时,在进行性能调优前,您需要理解并掌握以下的相关基础理论知识: 1、JVM垃圾收集器和垃圾回收算法 2、J ... »

JVM的常用命令汇总

目录 简介 jps jinfo jstat jstack jmap 简介 监测java应用,最方便的就是直接使用jdk提供的现成工具,在jdk的安装的bin目录下,已经提供了多种命令行监测工具,以便于开发人员和运维人员监测java应用和诊断问题,因此,此类工具是java应用监测的重要手段。 »

java中的垃圾回收算法与垃圾回收器

常用的垃圾回收算法 标记-清除 标记清除算法是一种非移动式的回收算法,分为标记 清除 2个阶段,简而言之就是先标记出需要回收的对象,标记完成后再回收掉所有标记的内存对象,如下图 可见回收后图中被标记的对象被删除回收了,但是碎片化比较严重不连续 对于下次分配大对象的时候由于内存不连续性影响比较大,而且 ... »

JDK中自带的JVM分析工具

解决常规的JVM异常时,通常依赖JDK中基础工具即可完成问题的定位,从而进行分析和解决,不过这些需要对基础工具熟练使用才行,而很多JDK自身的能力又是经常被忽略的; ... »

JAVA如何获取jvm和操作系统相关信息

目录 背景 Jvm 操作系统 背景 今日搬砖🧱时需要获取系统运行时间、版本号等相关信息,使用Java自带的类进行获取系统运行的相关信息,在这整理记录分享一下,感兴趣的小伙伴可以自己尝试尝试。 Jvm 首先获取jvm相关信息,包含jvm的名称、版本号、启动时间、运行时间、环境变量、进程 »

JVM如何优化

这篇文章主要讲解了“JVM如何优化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JVM如何优化”吧!  gc 垃圾回收 垃圾回收的方式:复制算法、标记整理、标记清除、分代回收 垃圾回收的实现:Serial、parNew、parallel Scaven »

JVM类加载器之ClassLoader的使用详解

目录 类加载器 概述 加载器的种类 验证不同加载器 核心方法 JVM类加载机制的三种方式 全盘负责 父类委托、双亲委派 缓存机制 打破双亲委派 重写loadclass方法 自定义类加载器 准备字节码文件 创建自定义类加载器 执行测试 注意事项 类加载器 概述 类加载器负责读取 »

JVM jstack实战之死锁问题详解

目录 构造死锁 在idea运行 使用jstack进行分析 怎么避免死锁 死锁产生的四个必要条件 死锁产生的原因 如何避免死锁呢 如果在生产环境发生了死锁,我们将看到的是部署的程序没有任何反应了,这个时候我们可以借助 jstack进行分析,下面我们实战操作查找死锁的原因。所谓死锁指的是是一组 »

详解JVM基础之字节码的增强技术

目录 字节码增强技术 ¶ ASM ¶ ASM API ¶ 核心API ¶ 树形API ¶ 直接利用ASM实现AOP ¶ ASM工具 ¶ Javassist ¶ 运行时类的重载 ¶ 问题引出 ¶ Instrument ¶ JVMTI & Agent & Attach API ¶ »

一文讲清楚 JVM Safe Point

大家好,我是树哥。 关于 Safe Point 是 JVM 中很关键的一个概念,但我估计有不少同学不是很懂。于是今天跟大家来深入聊聊 Safe Point,希望通过这篇文章能解答这样几个问题: 什么是 Safe Point? 为啥需要 Safe Point? Safe Point 与 Stop th ... »

chanshuyi

java自旋锁和JVM对锁的优化详解

目录 背景 好处 AtomicLong的实现 getAndIncrement方法 实验 缺点 适用场景 JVM对锁做了哪些优化? 自适应的自旋锁 锁消除 锁粗化 偏向锁/ 轻量级锁/ 重量级锁 锁升级 背景 先上图 由此可见,非自旋锁如果拿不到锁会把线程阻塞,直到被唤醒; »