java堆和栈内存分析

本博文是参考

https://www.cnblogs.com/itcqx/p/5486174.html

https://www.javazhiyin.com/708.html

两位大佬的分享,而进一步自己总结的笔记

 

java内存分为以下几种:
1、寄存器(register):最快的存储区,由编译器根据需求进行分配,我们在程序中无法控制

2、栈(stack):存放基本数据类型和对象、数组的引用,但对象本身不在栈中,而是存放在堆中(new出来的额对象)或常量池中(字符串常量对象存放在常量池中)
    1、每个线程私有,不能实现线程共享
    2、局部变量放置在栈中
    3、由系统自动分配,速度快,是一个连续的内存空间
    4、后进先出

3、堆(heap):存放所有new出来的对象和数组
    1、放置new出来的对象
    2、是一个不连续的内存空间,分配灵活,速度慢

4、静态存储(static storage):存放静态成员

5、常量存储(constant storage): 存放字符串常量和基本类型常量(public static final)

6、非RAN存储:硬盘灯永久存储空间

7、方法区: 包含了静态存储、常量存储
    1、被所有线程共享
    2、用来存放程序中永远不变或唯一的内容(类代码信息、静态变量、字符串变量)

速度排行: 寄存器 > 栈 > 堆 > 其他
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值