4.JVM内存模型

原创 2016年05月31日 11:20:22

1.stack(线程私有)

管理方法执行时的内存模型。stack里面有帧,用于记录方法执行时的变量,参数,动态链接库,返回信息,地址等。

递归调用时要非常注意stack over flow的异常。

还受当前内存的限制,如果内存不够也会oom异常。

2.native method area(线程私有)

不是java实现而是通过本地的C/C++实现,此时jvm引擎要通过JNI去做。

3.heap(全局共有) 

用于存储对象。也是jvm垃圾回收的主要区域。 

4.c/c++(全局共有)

5.program counter register(线程私有)

每个线程私有的记录程序下条运行指令的对象,主要用于线程数大于core时起作用。可以指向java,也可以是c、c++,但此时为null

6.method area包含constant pool(全局共有)

存放常量,静态变量,编译后的字节码,一般情况下不会被jvm回收。但是当类所创建的所有实例被回收时,同时在这个类的classold也被回收时,这时有可能方法区的代码有可能被回收。

5.direct memory

使用nio时直接通过本地来分配具体的内存空间。tachyon大规模的使用nio。

虽然直接使用channel和buffer的方式作为新的内存方式,但仍然可能会导致内存溢出。此时会产生offheap级别的异常。




相关文章推荐

JVM内存模型

JVM定义了若干个程序执行期间使用的数据区域。这个区域里的一些数据在JVM启动的时候创建,在JVM退出的时候销毁。而其他的数据依赖于每一个线程,在线程创建时创建,在线程退出时销毁。 程序计数器 ...

Java 虚拟机JVM内存模型

  • 2014年06月20日 14:59
  • 2.26MB
  • 下载

JVM内存模型

  • 2013年06月08日 21:54
  • 141KB
  • 下载

【深入理解JVM】:Java内存模型JMM

多任务和高并发的内存交互多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比...

【JVM内存模型】实例分析

In a nutshell primitive, object and class data are stored in 3 different memory areas: heap space, m...

【Java】深入理解JVM内存模型

一、程序计数器程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可...
  • claram
  • claram
  • 2015年09月01日 17:47
  • 5670

JVM内存模型与性能调优

jvm内存模型与内存错误Java虚拟机管理的内存将包含以下几个运行时数据区域:程序计数器、方法区,栈区,堆区,本地方法栈。(1)程序计数器是一块比较小的内存空间,它可以看做是当前线程所执行的字节码的行...

《深入理解Java虚拟机》读后总结 (一)JVM内存模型

《深入理解Java虚拟机》读后总结 (一)Sun HotSpot JVM内存模型 (二)Sun HotSpot JVM内存分配 (三)Sun HotSpot JVM内存监控 (四)Sun HotSpo...
  • aubdiy
  • aubdiy
  • 2016年05月26日 22:23
  • 334

jvm 内存模型及实践

一个jvm流程实际运转的小例子: 先了解具体的概念: JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method) 堆区: 1.存储的全部是对象,每...
  • a724888
  • a724888
  • 2017年05月18日 12:12
  • 154

认识JVM性能监控与故障处理工具&深入理解Java内存模型

先来复习昨天的UC面试: 1.
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:4.JVM内存模型
举报原因:
原因补充:

(最多只允许输入30个字)