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级别的异常。




4.JVM简述

JVM是一种规范。 就是一个虚拟的用于执行bytecodes字节码的计算机 可以用软件来实现,如IBM,SUN,BEA等按照这个规范实现,可以实现比SUN公司更好的JVM,我们自己也可以实现一个。 可...
  • zengmingen
  • zengmingen
  • 2017年01月04日 14:39
  • 265

Java虚拟机解析篇之---内存模型

今天闲来无事来,看一下Java中的内存模型和lajihuisongjizh
  • jiangwei0910410003
  • jiangwei0910410003
  • 2014年11月02日 14:18
  • 9224

全面理解Java内存模型

Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。如果...
  • suifeng3051
  • suifeng3051
  • 2016年09月21日 18:39
  • 53888

JVM内存模型和垃圾收集

看《深入理解Java虚拟机》,所作读书笔记。 一、JVM体系结构 二、JVM运行时数据区 堆的划分 三、对象是否可以回收 1、引用计数算法 2、可达性分析算法 GC Roots的对象包括以...
  • u012387062
  • u012387062
  • 2015年10月25日 21:44
  • 1303

什么是Java内存模型

概述:本文向您介绍Java内存模型的概念,在C或C++中, 利用不同操作平台下的内存模型来编写并发程序;Java利用了自身虚拟机的优势, 使内存模型不束缚于具体的处理器架构,真正实现了跨平台。 ...
  • guomei
  • guomei
  • 2015年04月21日 00:51
  • 1960

【memcached】内存模型

memcache的是采用Slab Allocation的机制分配和管理内存的。其基本原理就是按照预先规定的大小,将分配的内存分割成特定长度的块,用以解决内存碎片问题。但由此也引来了内存浪费的问题。...
  • robinjwong
  • robinjwong
  • 2014年06月08日 16:12
  • 1396

JVM的内存区域划分(面试问题:你了解java内存模型么)

JVM的内存区域划分   学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢?  ...
  • hxpjava1
  • hxpjava1
  • 2017年02月15日 09:47
  • 5337

jvm-java 内存模型 以及各个分区具体内容

java内存模型
  • steady_pace
  • steady_pace
  • 2016年04月26日 22:08
  • 5688

简述java内存模型

1. 概述   多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较...
  • liu88010988
  • liu88010988
  • 2016年03月04日 09:59
  • 1291

JVM内存模型及分区

Java虚拟机在程序执行过程会把jvm的内存分为若干个不同的数据区域来管理,这些区域有自己的用途,以及创建和销毁时间。 jvm管理的内存区域包括以下几个区域: 栈区: 栈分为java虚拟机栈和本...
  • tsdfk1455
  • tsdfk1455
  • 2016年05月30日 23:43
  • 5810
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:4.JVM内存模型
举报原因:
原因补充:

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