刚看了一篇关于逃逸分析的博客说:Java数组长度小于等于64会是在栈分配的,大于64的会分配在堆里面。
问题1:这个是真的吗?官方文档哪里有些?
问题2:如果是真的,那么基础数据类型数组和对象数组都一样在小于64在栈里面分配吗?
问题3:把对象的内存分配到栈的前提是什么?不会逃逸就可以了吗?
问题4:Java的栈上分配都是都是JVM自动优化,不能指定分配在堆还是栈上面吗?
Java数组的内存分配和逃逸分析的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2018-04-07 15:45关注
这个本质上是为了优化,取决于特定的jvm版本和配置。对于开发者是透明的,在jvm7以上可以有这样的优化,至于大小是多少,这个是undocumented的,不一定是64
解决 无用评论 打赏 举报
悬赏问题
- ¥20 删除和修改功能无法调用
- ¥15 kafka topic 所有分副本数修改
- ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
- ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
- ¥40 串口调试助手打开串口后,keil5的代码就停止了
- ¥15 电脑最近经常蓝屏,求大家看看哪的问题
- ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
- ¥50 C++五子棋AI程序编写
- ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。
- ¥15 SQL Server analysis services 服务安装失败