天天看点

JVM 内存组成 | 学习笔记

开发者学堂课程【Java面试疑难点串讲1:面试技巧及语言基础:JVM 内存组成】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:

https://developer.aliyun.com/learning/course/24/detail/488

JVM 内存组成

内容介绍

一、内存组成

JVM 内存组成里面最为关键的几个内存:

栈内存:只是保存有堆内存的引用地址,而且从一个简单的角度来讲,栈内存可以保存基本类型( int、double )

堆内存: Java 没有采用句柄的模式进行引用,所以它的引用性能是最高的,但是从另外一个角度来讲,堆内存里面实际上又分为了若干个子内存空间:伊甸园区( MinorGC )、存活区、老年代( FullGC、MajorGC )。

原则:少产生无用的大量内存空间,因为会引发频繁的 GC,而频繁的 GC 会带来 CMS 问题,那么会导致程序中断执行,所以这个处理的原则之中对于程序员的要求;

原则:让你初始化的空间大小等于整个的堆内存的分配大小,避免伸缩区,这样可以进行性能的提升。

方法区( JDK1.8 以前可以称为永久代,在 JDK1.8 之后称为元空间);

全局数据区也可以认为其规划在堆内存里面,因为会发现全局数据区之中保存的内容有可能是对象,有可能是基本类型,只不过它采用了一种特殊的处理方式而已。

在以后进行面试的过程之中问的最多的问题肯定是堆内存的组成以及 GC 的处理流程。