Java数组的内存分配和逃逸分析的问题 5C

刚看了一篇关于逃逸分析的博客说:Java数组长度小于等于64会是在栈分配的,大于64的会分配在堆里面。
问题1:这个是真的吗?官方文档哪里有些?
问题2:如果是真的,那么基础数据类型数组和对象数组都一样在小于64在栈里面分配吗?
问题3:把对象的内存分配到栈的前提是什么?不会逃逸就可以了吗?
问题4:Java的栈上分配都是都是JVM自动优化,不能指定分配在堆还是栈上面吗?

1个回答

这个本质上是为了优化,取决于特定的jvm版本和配置。对于开发者是透明的,在jvm7以上可以有这样的优化,至于大小是多少,这个是undocumented的,不一定是64

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问