搜索
栈 - java 程序运行过程中如何进行内存分配的或者介绍下内存分配的过程
阿神
阿神 2017-04-17 14:29:11
[Java讨论组]

面对这样的面试题:
java 程序运行过程中如何进行内存分配的或者介绍下内存分配的过程,请详细描述,谈谈你的理解!
我第一时间想到的是堆栈相关的知识点考察,所以面试的过程中通过一个例子说明了一下,很简短的说完了,感觉面试官不太满意,各位如果遇到类似的问题,该如何回答才能得到面试官加分!
Java 内存区域详解有没有结合这个回答的必要。

阿神
阿神

闭关修行中......

全部回复(1)
怪我咯
  • 内存分配首先要知道内存的数据区域有哪些?
    虚拟机栈,程序计数器,堆,方法区,本地方法区。
  • 知道了内存分配主要在堆上进行后,由于垃圾回收机制的存在,具体又是怎么分配的?
    堆分为新生代,老年代,永久代。
    对象分配主要在新生代中的Eden区域中,如果经过多次GC对象还存活,那么对象将进入老年代。如果启动了本地线程分配缓冲,则按线程优先在TLAB中分配。大型对象直接分配到老年代。
  • 为什么大型对象直接分配到老年代?
    新生代的垃圾回收机制采用复制算法(复制算法的问题)。
  • 空间分配担保是怎么回事?
    在新生代的对象有可能提前进入老年代。
  • 对象在内存中的布局是怎样的?
    Java内存区域详解

以上都是基本的内存分配问题,每个都可以深入下去。
由于jvm垃圾自动回收技术的存在,以上问题都是需要解决的。
我也在学习,大家可以相互探讨共同进步。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号