加载中
Java技术专题-JVM研究系列(38) 再次分析回顾堆外内存使用和分析

堆外内存 堆外内存,其实就是不受JVM控制的内存。简单来说,除了堆栈内存,剩下的就都是堆外内存了(当然,这是从Java运行时内存的角度来看),堆外内存直接受操作系统管理,而不是虚拟机。而...

🏆Java技术专题-JVM实战案例(1)服务发生OOM故障定位方案

前提概要 对于JVM服务而言出现了OOM(Out Of Memory)问题,并且对其进行相关的解决是作为一个Java技术栈人员必备的实战能力。在此总结了一些相对通用的方案,希望能帮助到大家。 分析原因 某J...

🏆Java技术专题-JVM研究系列(36) 性能调优之CMS垃圾回收器(上)

前提概要 如果没有冬天,春天不会如此悦人;如果没有偶尔的不幸,幸运不会如此受人欢迎。 CMS垃圾回收的6个重要阶段 initial-mark 初始标记(CMS的第一个STW阶段),标记GC Root直接引用的对...

Java技术专题-JVM研究系列(37)class字节码指令操作介绍(上)

前提概要 Java虚拟机的指令由一个字节长度、代表着某种特定操作含义的数字(称为操作码, Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)而构 成。 指令介绍 由...

Java技术专题-JVM研究系列(35)class字节码指令方法调用详解(上)

方法调用详解 调用目标在程序代码写好、编译器进行编译时就必须确定下来,这类方法的调用称为解析。 解析 在Java语言中符合**“编译期可知,运行期不可变”**这个要求的方法,主要包括静态方...

06/10 19:55
71
Java技术专题-JVM研究系列(34)字节码指令重排序

前提概要 指令重排序有两类,编译器重排序和处理器重排序。(至于内存系统指令重排较为复杂不是本章重点) 重排序分为两类:编译期重排序和运行期重排序,分别对应编译时和运行时环境。 编译...

06/05 13:06
66
Java技术专题-JVM研究系列(33)虚拟机字节码执行引擎方法调用

方法调用 方法调用并不等同于方法中的代码被执行,而是确定被调用方法的版本(哪一个方法要被执行),而并不涉及到方法内部的具体执行过程。 由于java中,方法调用在class文件中存储的都是符...

🏆 Java技术专题-JVM研究系列(32)全流程化分析Java对象的创建过程

前言概要 对应过程则是:对象创建、对象内存布局、对象访问定位的三个过程。 对象的创建过程 对象的创建方式 java中对象的创建方式有很多种,常见的是通过new关键字和反射这两种方式来创建。...

Java技术专题-JVM研究系列(31)深入学习JIT编译器实现机制(原理篇)

前提概要 解释器 Java程序最初是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁的时候,就会把这些代码认定为“热点代码”(hotspot code)。正因为如...

06/01 13:15
38
Java技术专题-JVM研究系列(30) 深入学习Parallel Scavenge回收器(入门篇)

Parallel Scavenge收集器 Parallel Scavenge收集器是一个新生代收集器,它也是使用【标记-复制】算法的收集器,又是并行的多线程收集,看上去和ParNew差不多,那它有什么特别之处呢?总体而言...

05/30 21:38
162
Java技术专题-JVM研究系列(29)攻克你的技术盲点之Java的常量池们

每日一句 没有失败的成功是永远不会长久,也永远不算"真正"的成功。 什么是常量 用final修饰的成员变量表示常量,值一旦给定就无法改变。 final修饰的变量有三种:静态变量、实例变量和局部变...

05/26 10:33
1.4K
Java技术专题-JVM研究系列(28)重塑你对类加载机制的认识

📕 每日一句 极限就是为了超越而存在的,如何挑战自己的极限,只能苦练! 📕 为什么又要写类加载器? 为什么有些一篇相关与对类加载器的文章?个人觉得之前的侧重点在于ClassLoader本身,...

05/25 11:43
2.8K
Java技术专题-JVM研究系列(24)深入挖掘Java对象的内存结构

📕 每日一句 善于利用时间的人,总会拥有充分的时间。 📕 基本概念 在JVM虚拟机种Java对象的内存结构如图所示分为三大块:对象头(Object Header)、实例数据(Instance Data)、对齐填充...

05/25 00:34
3.1K
Java技术专题-JVM研究系列(27)Thread的stackSize与-Xss参数的区别

每日一句 学在苦中求,艺在勤中练。不怕学问浅,就怕志气短。 前提概要 Thread的stackSize与-Xss参数都可以控制单个线程的栈内存大小,它们的区别你知道吗?当这两个配置同时存在时,以哪个为...

Java技术专题-JVM研究系列(26)让你完全攻克内存溢出(OOM)这一难题

每日一句 只有经历地狱般的磨练,才能创造出天堂般的力量。 堆(Heap)内存不足 报错信息: java.lang.OutOfMemoryError: Java heap space 导致原因 代码中可能存在大对象分配 可能存在内存泄...

Java技术专题-JVM研究系列(25)你真正掌握了Java对象创建的流程吗?

每日一句 拥有梦想只是一种智力,实现梦想才是真正的能力 前提概要 我们都知道类的装载过程中,分为 加载、链接(校验、准备、解析)、初始化(类的初始化),此处初始化主要是代表着类的初始...

05/24 10:52
3.6K
Java技术专题-JVM研究系列(23)彻底弄清楚Minor GC和Major GC及Full GC

每日一句 每一日你所付出的代价都比前一日高,因为你的生命又消短了一天,所以每一日你都要更用心。 前提概要 对于JVM而言,最难能够掌握的就是GC回收部分的研究和探索。而对于虚拟机而言根据...

Java技术专题-JVM研究系列(22)你很少了解的直接内存(上)

每日一句 我们始于迷惘,终于更高水平的迷惘。(我最喜欢的名句,哈哈) JDK7和JDK8的内存结构对比 从上面的图中可以看到Java8相比Java7来讲将方法区的实现,从非堆空间(其实逻辑与堆相连,...

Java技术专题-JVM研究系列(21)带你认识下Open JDK和Oracle/Sun JDK的关系

每日一句 过去属于死神,未来属于你自己。 —— 雪莱 背景回溯 历史上的原因是,OpenJDK是JDK的开放原始码版本,以GPL协议的形式放出。在JDK7的时候,OpenJDK已经成为JDK7的主干开发,Sun/O...

Java技术专题-JVM研究系列(20)JVM内存逃逸原理分析

前提概要 JVM的内存分配主要在是运行时数据区(Runtime Data Areas),而运行时数据区又分为了:方法区,堆区,PC寄存器,Java虚拟机栈(就是栈区,官方文档还是叫Java虚拟机栈),本地方法区,内...

05/03 09:22
8.6K

没有更多内容

加载失败,请刷新页面

返回顶部
顶部