java调优整理--堆和栈的相关知识

栈用来表示程序的运行处理逻辑,而堆用来存储数据。

java中每个线程都有一个独立于其他线程的线程栈,每个线程栈代表了不同的处理逻辑。线程栈大小一般为1M,可根据-Xss参数调整。

堆是程序存储数据(对象)的地方,堆中的数据是共享的,这样的设计一方面便于线程间交互,另一方面堆可以存储一些公共的常量、对象及缓存,节省内存。

java的数据类型可以分为基本类型和引用类型。基本类型因为大小固定,且长度均在1-8个字节,因此存储在栈中。 对象存储在堆中,对象的引用存储在栈中。

 

java线程栈的大小可以通过-Xss设置,当栈中存储数据比较多时,可适当调大线程栈。java.lang.StackOverflowError异常指示的就是线程栈满了。一般出现这个异常的原因与递归有关。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值