java之JVM面试题整理

本教程操作环境:windows7系统、java10版,DELL G3电脑。

1.Java为何被称作是“平台无关的编程语言”

Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。

2.堆栈的区别

功能方面:堆是用来存放对象的,栈是用来执行程序的。

共享性:堆是线程共享的,栈是线程私有的。

空间大小:堆大小远远大于栈。

3.队列和栈的概念及区别

队列和栈都是被用来预存储数据的。

队列允许先进先出检索元素,但也有例外的情况,Deque 接口允许从两端检索元素。

栈和队列很相似,但它运行对元素进行后进先出进行检索。

4.JVM垃圾回收机制和常见算法

(1)引用计数法:当引用数为0时,对象死亡

(2)根搜索算法:根对象到某对象不可达时,对象死亡。

5.jvm查看gc命令

jstat -gc 12538 5000

即会每5秒一次显示进程号为12538的java进成的GC情况,

6.如果频繁老年代回收怎么分析解决(蚂蚁金服面试题)

老年代是存放那些在程序中经历了好几次回收仍然还活着或者特别大的对象(这个大就要看你是否设置了-XX:PretenureSizeThreshold 参数了)。检查程序中是否有比较大的对象,或者这个参数设置是否合理。

7.垃圾回收的优点和原理。并考虑2种回收机制。

垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。

原文来自:https://www.py.cn

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容