博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jvm虚拟机内存详解
阅读量:3891 次
发布时间:2019-05-23

本文共 657 字,大约阅读时间需要 2 分钟。

基础数据类型:boolean、char、byte、double、float、int、long、short

引用类型:类、接口、数组

早都应该写了!!!

我们平时口头上说的就是 堆、栈、方法区,下面先解释一下这三个:

1、栈:

这个栈就是我们平时说的栈,全名是:虚拟机栈

  》1、栈中只保存基础数据类型数据的对象和自定义对象的引用(地址),而实例对象都存储在堆中。

  》2、一条线程包含一个栈,所以栈是私有的,所有的数据(基础类型和对象引用)都不能被其他栈访问。

  》3、生命周期和线程一致

2、堆:

  》1:、存放所有的实例对象,以及数组对象。

  》2、在整个jvm中只有一个堆,被所有的线程共享。

3、方法区:

  》1、方法区也叫静态区,存放了要加载的类的信息,包含class、static变量、常量等

  》2、方法区中包含的,都是整个jvm中唯一的元素,如final定义的

  》3、运行时候的常量池也存放在方法区中

以上就是我们经常说的jvm内存,而实际上还有两个:本地方法栈和程序计数器

4、本地方法栈:

  》用于支持native方法的执行, 存储了native方法的执行状态

    native方法:与硬件交互的方法

5、程序计数器:

  》通过计数器的值,来获取下一条指令的地址

  》如果程序在执行java方法的时候,计数器记录的是正在执行的虚拟机字节码指令地址,

    如果执行的是native方法,值是undefined

并且,由于计数器的内存不会随着程序的运行而改变,因此计数器是内存区唯一不会发生内存泄漏的(outofmemory)

 

 

转载地址:http://ypahn.baihongyu.com/

你可能感兴趣的文章
程序员什么时候该考虑辞职
查看>>
如何写一本书?
查看>>
加班能体现编程的热情吗?
查看>>
Hadley Wickham:一个改变了R的人
查看>>
glibc 指导委员会解散声明
查看>>
Linux创始者托瓦兹谈及IoT --「安全在其次」
查看>>
传感器数据分析(Sensor Data Analytics)是什么?
查看>>
智能硬件开发如何选择低功耗MCU?
查看>>
阿里感悟(十)如何写好简历
查看>>
阿里感悟(十一)如何准备面试
查看>>
软件架构入门
查看>>
80 多个 Linux 系统管理员必备的监控工具
查看>>
OOD的原则
查看>>
Tool to trace local function calls in Linux
查看>>
Linux 下查询 DNS 服务器信息
查看>>
ulimit 里的 file size 的 block 单位是多少?
查看>>
linux下查看端口对应的进程
查看>>
将 gdb 用作函数跟踪器 (Function Tracer)
查看>>
原 GCC一些有用的技巧
查看>>
yum 变量追加的方法
查看>>