java虚拟机管理的内存

原创 2015年11月19日 23:31:52




1:程序计数器:每个线程都有一个独立的程序计数器,用来记录当

前线程所执行字节码的行号指示器,如果切换线程执行其他的线程的时候,字节码解释器就是通过这个计数器的值来制定下一个处理的字节码指令,

2:java虚拟栈:它是线程私有的,生命周期与线程相同,描述的 java方法的内存模型,每个方法被执行的时候都会创建一个栈帧(stack frame),用来存放局部变量,每个方法被调用到执行完的过程,都对应着每个栈帧在虚拟机中入栈到出栈的过程



本地方法栈:和java虚拟机栈相似,不同的地方在于他们服务的对象不同,java虚拟机栈为java方法服务的,本地方法栈为native方法服务的,其它都一样

java堆:是java虚拟机所管理的内存中最大的一块,也是所有线程所共享的一块区域,在java虚拟机启动的时候创建,存放的是java对象实例,java堆可以处于物理上不连续存储空间,只要逻辑上连续就行,就想磁盘空间一样,既可以设定固定大小,必要时也可以扩展,;但是如果,不可再扩展,切不可再分配内存给实例,就会出现内存溢出


方法区:和java堆一样,是所有线程所共享的一块区域,用来存放以被java虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据,java虚拟机规范称它为是堆得一个逻辑部分,但是它却有一个“堆”的别名



3:运行时常量池:方法区的一部分,class文件中除了类的版本,字段,方法,皆空等信息外,还有一项信息叫常量池,用来存放编译期生成的各种字面量和符号引用,这些内容,让在类加载后存放到方法区的运行时常量池中;java虚拟机规范中没有做出对运行时常量池的规范;运行时常量池相对于class文件常量池,另外一个重要特征是具有动态性;就是说不要求常量一定在编译器产生,运行时也可以动态的加入,debug不就是一个例子么,动态的改参数调试



4:直接内存:(direct mermory)并不是虚拟机运行时数据区的一部分,也不是java虚拟机规范中定义的内存区域,但是这部分内存也被频繁的使用,而且也可能导致异常出现,所以我们放到这里一起讲解;这个直接内存指的是:在java 1.4中新引入的NIO类,引入了一种基于通道与缓冲区的I/o方式,他可以使用native函数库直接分配堆外内存,然后通过一个存储在java堆里面的directbytebuffer对象作为这块内存引用进行操作(就是引用在堆里面,实例在外面),遮阳能在一些场景中显著提高性能,因为避免了在javadui

和native堆中来回复制数据

显然本机直接内存的分配不会受到java堆大小的限制,但是,既然是内存,则肯定还是会受到本机总内存的大小及处理器寻址空间的限制,服务器管理员配置虚拟机参数时,,一般会根据实际内存设计-xmx等参数信息,但经常会忽略掉直接内存,使得各个内存屈辱的中和大于物理内存限制(包括物理上的和草错系统级的限制),从而导致动态扩展时出现内存溢出

5:


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

struts2上传实时进度条

求struts2上传实时进度条,只用struts2兼ajax或dwr的,不要其他框架的。。。哪位大侠有的话请不要吝啬给我一个,或是上传到资源里 我去下载啊。。先谢谢啦。。。。我研究了2,3天了还是没有...

秋季可爱喇叭袖外套 百搭

服装搭配技巧:可爱喇叭袖外套,在80年代初,喇叭裤是很多小女生眼里的明星,广告衫款式还不错的 jin_xxjs,而且颜色比较低调,不会给人很花哨的感觉。

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

libmysqlclient.so.18: cannot open shared object file: No such file or directory

错误情形:[root@localhost ~]# /usr/local/nagios/libexec/check_mysql -h /usr/local/nagios/libexec/check_my...

Eclipse Error – Failed to load the JNI shared library “C:\Program Files (x86)\Java\jre6\bin\client\j

意思是64位的jdk 安装目录安装到了x86,32位上, 解决办法:1:用32位的eclipse ,                    2:重新安装jdk到64为目录下

POS操作出错处理

一、金额输入错误的处理   1、输入金额大于消费金额:   如果当日发现,在持卡人未离开的情况下,可由收银员在本机上进行消费撤消处理;如果持卡人已经离开,或者隔日的情况下,只能按照退货要求...

使用vim编辑器时按了CTRL+S键终端无响应?

使用vim编辑器时按了CTRL+S键终端无响应?CTRL+S 停止向终端输出流 CTRL+Q 恢复向终端输出流.可以使用CTRL+Q终止程序,然后用vim重新打开文件。

代理商户的增删改查

1:查询条件:当前用户所属机构:(当前用户只能是分公司的管理员) 2:添加代理商: 代理商级别:1,2,3 代理类型:直营,手机,普通代理 代理商性质:国营,股份制,集体,中外合资合作,外商...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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