高频面试题-请聊一下JVM中堆以及栈的区分

小微 科技高频面试题-请聊一下JVM中堆以及栈的区分已关闭评论110字数 702阅读模式
摘要上一回我们说完了JVM的内存结构,将JVM中有哪些元素已经搞清了。今天就再根据之前的主题接着延伸出一个更容易被面试官问到的题目。堆和栈的区别!这次我们就从以下几个方面说一说有什么不...

上一回咱们说完了JVM的内存结构,将JVM中有哪些元素已经弄清了。

今天就再依据以前的主题接着延伸出一个更易被面试官问到的题目。文章源自微观生活(93wg.com)微观生活-https://93wg.com/3240.html

堆以及栈的区分!文章源自微观生活(93wg.com)微观生活-https://93wg.com/3240.html

这次咱们就从下列几个方面说一说有什么不同的地方。文章源自微观生活(93wg.com)微观生活-https://93wg.com/3240.html

JVM对其的管理方式

虚拟机栈:线程收场后自动释放内存,不必垃圾回收。文章源自微观生活(93wg.com)微观生活-https://93wg.com/3240.html

堆:需要垃圾回收器进行回收(GC处理)。文章源自微观生活(93wg.com)微观生活-https://93wg.com/3240.html

运行效力

虚拟机栈:高; 堆:低。文章源自微观生活(93wg.com)微观生活-https://93wg.com/3240.html

空间大小

虚拟机栈:小。文章源自微观生活(93wg.com)微观生活-https://93wg.com/3240.html

堆:大,以前在内存架构篇里面说过,堆其实盘踞了JVM虚拟机内存的一大部份。文章源自微观生活(93wg.com)微观生活-https://93wg.com/3240.html

内存碎片

虚拟机栈:小,寄存的数据少的同时,即便烧毁后也不会留下太多碎片。文章源自微观生活(93wg.com)微观生活-https://93wg.com/3240.html

堆:大,首先是由于堆空间的大小比虚拟机栈的空间要大得多,活动量也较之大得多,即便垃圾回收器可以自动回收堆空间,再加之垃圾回收器的回收机制不是实时的,所以就会将内存碎片积累起来。文章源自微观生活(93wg.com)微观生活-https://93wg.com/3240.html

关于垃圾回收器相干知识,后期我会单独写一篇文章解释一下。

分配方式

虚拟机栈:一部份是静态分配内存,一部份是动态分配内存。

堆: 都是动态分配,由于只有在程序运行进程中才会知道对象实例等数据具体需要多少内存。

说完了堆与栈的区分呢,接下来面试官可能还要问一下怎么设置堆或者栈内存的初始值呢?

-Xms

设置堆内存初始值。

-Xss

设置虚拟机栈的内存大小。

-Xmx

设置堆可以占用内存的最大值。

加分项来了,趁势补充下面这句话,面试官就能足够相信你的知识够扎实了。

注:这个值一般与堆的初始值相同,由于当堆内存达到初始值时会进行自动扩容,扩容时就会造成一定的内存抖动,颇有可能致使程序就此崩掉,或者是机能降落,对程序的不乱性有一定的影响。

以上就是微观生活(93wg.com)关于“高频面试题-请聊一下JVM中堆以及栈的区分”的详细内容,希望对大家有所帮助!

 
小微
  • 版权声明: 本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:81118366@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
  • 转载请务必保留本文链接:https://93wg.com/3240.html