题目 JVM的内存区域是怎么划分的? OOM可能发生在哪些区域上? 堆内存结构是怎么样的? 常用的性能监控与问题定位工具有哪些? 1.JVM的内存区域是怎么划分的? JVM的内存划分中,有部分区域
前言对于后端程序员,特别是 Java 程序员来讲,排查线上问题是不可避免的。各种 CPU 飚高,内存溢出,频繁 GC 等等,这些都是令人头疼的问题。楼主同样也遇到过这些问题,那么,遇到这些问题该如何解
1、什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构
内存分配以及回收 Java虚拟机运行时数据区,分为以下几个模块,包含所有线程共有的数据区和线程单独享有的数据区。 程序计数器:字节码行号,通过这个计数器来选取下一条需要执行的指令,线程独有。 虚拟机
线上FullGC频繁的排查 问题 前段时间发现线上的一个dubbo服务Full GC比较频繁,大约每两天就会执行一次Full GC。 Full GC的原因 我们知道Full GC的触发条件大致情况有以
Java语言是跨平台的,JVM不是跨平台的 不同平台需要安装对应版本的JVM才能运行(例如:windows系统有windows版的JVM, linux系统有linux体统的JVM)所以说JVM是不
方法区:也叫永久区,线程共享,用于存储类结构信息的地方,包括常量池、静态变量、构造函数等类型信息,类型信息是由类加载器在类加载时从类文件中提取出来的,永久区同样存在垃圾回收机制,用为用户通过加载器加
前言 如今不管是在面试还是在我们的工作中,OOM总是不断的出现在我们的视野中,所以我们有必要去了解一下导致OOM的原因以及一些基本的调整方法,大家可以通过下面的事例来了解一下什么样的代码会导致OOM,
有的同学虽然写了一段时间 Java 了,但是对于 JVM 却不太关注。有的同学说,参数都是团队规定好的,部署的时候也不用我动手,关注它有什么用,而且,JVM 这东西,听上去就感觉很神秘很高深的样子,还
上图中第6点报错Java.lang.OutOfMemoryError:java heap space 持久代也叫永久代,也叫方法区。存储每一个java类的结构信息:比如运行时常量池,字段和方法数