ChaoBaby94 2018-04-07 14:57 采纳率: 0%
浏览 822
已结题

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

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

  • 写回答

1条回答

  • threenewbee 2018-04-07 15:45
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思