0
点赞
收藏
分享

微信扫一扫

JVM(九)Heap、本地方法栈、Method Area等

Native Method Stacks:本地方法栈:线程私有

image.png

本地方法栈和JVM栈大体相同,区别是JVM Stacks是为java方法服务,Native Method Stacks是为本地方法服务。

Heap:堆:线程共享

image.png 堆当中保存着所有的对象的实例,创建的对象和数组都保存在 Java 堆内存中,也是垃圾收集器进行垃圾收集的最重要的内存区域。关于垃圾回收器和垃圾回收算法,下节再讲。

image.png 可以通过这几个指令设置堆大小

Method Area:方法区:线程共享

image.png

方法区即我们常说的永久代(Perm Space (1.8之前,之后是Meta Space 元空间,注意的是,Perm Space 和Meta Space是方法区不同版本的具体实现,方法区是个抽象的概念)), 用于存储被 JVM 加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。还有运行时常量池(Runtime Constant Pool)

Runtime Constant Pool:运行时常量池

image.png 用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后存放到方法区的运行时常量池中。

Directory Memory 直接内存

直接内存 ,OS管理,Nio访问的就是直接内存(零拷贝)

参考文档 1.官方文档:https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.5 2.《深入理解Java虚拟机》 3.JSR规范整理:https://www.iteye.com/blog/manysysy-1046963 4.JSR133中文版:http://ifeve.com/wp-content/uploads/2014/03/JSR133%E4%B8%AD%E6%96%87%E7%89%881.pdf 5.JSR133: http://www.cs.umd.edu/~pugh/java/memoryModel/jsr133.pdf

举报

相关推荐

0 条评论