Bootstrap
面试官:JVM的运行时数据区了解不?

文章已同步至GitHub开源项目: JVMStudy

Java 常见的几种 OOM

上面这种 OOM 比较好理解,在 main 方法中循环调用 main 方法,循环产生的大量形参都会在栈空间进行创建,当超过栈空间的大小,就会导致栈空间溢出,发生 OOM。

如何快速制造OOM

JVM提供了发生OOM时自动保存dump的参数。

记一次JVM OOM 实战优化

刚接手的服务,正常稳定运行了很长一段时间,在大家伙收拾东西准备回家过年时,突然就抽风了。

☕【JVM 技术之旅】让你完全攻克内存溢出(OOM)这一难题(上)

只有经历地狱般的磨练,才能创造出天堂般的力量。

浅谈JVM和垃圾回收

简单的介绍一下JVM(Java Virtual Machine)吧,它也叫Java虚拟机。虽然它叫虚拟机,但是实际上不是我们所理解的虚拟机,它更像操作系统中的一个进程。JVM屏蔽了各个操作系统底层的相关的东西,Java程序只需要生成对应的字节码文件,然后由JVM来负责解释运行

JVM之内存管理

JVM的内存组成结构,以及JVM的内存管理

JVM 垃圾收集算法

从如何判断对象消亡的角度出发,垃圾收集算法可以划分为“引用计数式垃圾收集”(Reference Counting GC)和“追踪式垃圾收集”(Tracing GC)两大类,这两大类也常被称作“直接垃圾收集”和“间接垃圾收集”。

【死磕JVM】给同事讲了一遍GC后,他要去面试,年轻人,就是容易冲动!

在一个风和日丽的中午,和同事小勇一起走在公司楼下的小公园里面,看到很多的小姐姐,心想什么时候能够和这些小姐姐一起讨论人生呀,美滋滋,嘿嘿嘿。

并发编程系列:并发编程基础

从前面的系列文章中,我们了解到了多cpu处理器的工作结构(内存、总线、多级缓存、CPU),所以也清楚,当多线程使用不当时,会带来的各种不一致甚至更严重的问题。以下将从Java并发编程的基础开始,介绍从启动一个线程到线程池的合理使用。

透过现象看本质:Java类动态加载和热替换

摘要:本文主要介绍类加载器、自定义类加载器及类的加载和卸载等内容,并举例介绍了Java类的热替换。

Java中的String到底占用多大的内存空间?你所了解的可能都是错误的!!

String对象占用的内存空间是可以计算出来的,你学会了吗?

Java String 面面观

本文主要介绍Java中与字符串相关的一些内容,主要包括String类的实现及其不变性、String相关类(StringBuilder、StringBuffer)的实现 以及 字符串缓存机制的用法与实现。

[JVM] String#intern 面试必会

结合高级Java笔试题, 一次学会 String#intern

JVM系列之:String.intern的性能

String对象有个特殊的StringTable字符串常量池,为了减少Heap中生成的字符串的数量,推荐尽量直接使用String Table中的字符串常量池中的元素。

☕【Java技术之旅】来啊!带你认识一下String字符串

极限就是为了超越而存在的。 —— 李浩宇.Alex

硬核系列 | 深入剖析字节码增强

Java语法层面暂不支持的功能特性,并不代表JVM不支持(比如:Coroutine),总之,基于字节码增强技术,一切皆有可能。

Java String 面面观

本文主要介绍Java中与字符串相关的一些内容,主要包括String类的实现及其不变性、String相关类(StringBuilder、StringBuffer)的实现 以及 字符串缓存机制的用法与实现。

[JVM] String#intern 面试必会

结合高级Java笔试题, 一次学会 String#intern

☕【JVM技术之旅】字节码指令重排序

指令重排序有两类,编译器重排序和处理器重排序。(至于内存系统指令重排较为复杂不是本章重点)

为了搞清楚类加载,竟然手撸JVM!

当学习一个新知识不知道从哪下手的时候,最有效的办法是梳理这个知识结构的脉络信息。就像JVM的学习,也是一个庞大的知识体系。例如:类加载、加载器、生命周期、性能优化、调优参数、调优工具、优化方案、内存区域、虚拟机栈、直接内存等等。

程序员的五年:双非学历,两年进入苏宁,五年跳槽到阿里,建议收藏!

2021年的开始又是多灾难的一年,对于我们每个人来说,健康地活着比什么都重要。受到疫情的影响,很多公司都过得比较艰难,裁员更是普遍,所以对大部分来说保住饭碗就很不错了,更别说什么跳槽晋升了。

源码分析 Vector 和 ArrayList

每次我们会被问到这个问题,我们都知道 Vector 是线程安全的,而 ArrayList是线程不安全的。今天想引申出几个问题。

JDK、JRE、JVM,是什么关系?

本篇文章主要介绍JDK、JRE、JVM三者之间的关系,为后续的JVM内容讲解做铺垫。另外想深入学习JVM并不太容易,既要学习JVM规范也要上手应用实践,所以非常建议耐住性子一点点开始。

图解带你掌握`JVM`运行时核心内存区

摘要:堆空间差不多是最大的内存空间,也是运行时数据区最重要的内存空间。堆可以处于物理上不连续的内存空间,但在逻辑上它应该被视为连续的。

JVM进阶(二):初识 JAVA 堆

众所周知,在java中内存主要分为以下几类:

JVM内存划分

JVM内存划分

JVM进阶(五):JAVA GC 之标记

堆分为年轻代和年老代。永久代是非堆内存,它又叫做方法区(一般的说法),主要存储已被加载的类信息、常量、静态变量。而该区域在java8已被删除,取而代之的是元空间,会在后面的章节细讲。

一次线上服务高 CPU 占用优化实践

聊聊下面这些内容: Java 程序 CPU 占用高的排查思路 可能造成线上服务大量异常的 log4j 假异步 Kafka 异步发送的优化 On-CPU 火焰图的原理和解读 使用 Trie 前缀树来优化 Spring 的路径匹配

Java虚拟机科普系列—元空间Metaspace的内存结构

我们深入研究元空间的架构。我们描述了各个层和组件,以及它们是如何协同工作的。

ZGC 新特性

随着系统架构、软硬件设施的不断完善发展,更大内存的使用,更高的系统目标,要支持更大的并发、更低的延迟、更大的吞吐量,这个时候,传统的GC已经无法满足需求,新一代GC - ZGC便应用而生。

图解带你掌握`JVM`运行时核心内存区

摘要:堆空间差不多是最大的内存空间,也是运行时数据区最重要的内存空间。堆可以处于物理上不连续的内存空间,但在逻辑上它应该被视为连续的。

其他标签