【吊打面试官】jvm大厂高频面试题和答案

Java内存区域
  • 说一下 JVM 的主要组成部分及其作用?
  • 说一下 JVM 运行时数据区
  • 深拷贝和浅拷贝
  • 说一下堆栈的区别?
  • 队列和栈是什么?有什么区别?
HotSpot虚拟机对象探秘
  • 对象的创建
  • 为对象分配内存
  • 处理并发安全问题
  • 对象的访问定位
    • 句柄访问
    • 直接指针
内存溢出异常
  • Java会存在内存泄漏吗?请简单描述

垃圾收集器
  • 简述Java垃圾回收机制
  • GC是什么?为什么要GC
  • 垃圾回收的优点和原理。并考虑2种回收机制
  • 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
  • Java 中都有哪些引用类型?
  • 怎么判断对象是否可以被回收?
  • 在Java中,对象什么时候可以被垃圾回收
  • JVM中的永久代中会发生垃圾回收吗
  • 说一下 JVM 有哪些垃圾回收算法?
    • 标记-清除算法
    • 复制算法
    • 标记-整理算法
    • 分代收集算法
  • 说一下 JVM 有哪些垃圾回收器?
  • 详细介绍一下 CMS 垃圾回收器?
  • 说一下 JVM 有哪些垃圾回收器?
  • 详细介绍一下 CMS 垃圾回收器?
  • 新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别?
  • 简述分代垃圾回收器是怎么工作的?
内存分配策略
  • 简述java内存分配与回收策率以及Minor GC和Major GC
    • 对象优先在 Eden 区分配
    • 大对象直接进入老年代
    • 长期存活对象将进入老年代
  • 虚拟机类加载机制
    • 简述java类加载机制?
    • 描述一下JVM加载Class文件的原理机制
    • 什么是类加载器,类加载器有哪些?
    • 说一下类装载的执行过程?
    • 什么是双亲委派模型?
  • JVM调优
    • 说一下 JVM 调优的工具?
    • 常用的 JVM 调优的参数都有哪些?

答案详情如下:

1、说一下 JVM 的主要组成部分及其作用?

JVM包含两个子系统和两个组件,两个子系统为Class loader(类装载)、Execution engine(执行引擎);两个组件为Runtime data area(运行时数据区)、Native Interface(本地接口)。
1、Class loader(类装载):根据给定的全限定名类名(如:java.lang.Object)来装载class文件到Runtime data area中的method area。
2、Execution engine(执行引擎):执行classes中的指令。
3、Native Interface(本地接口):与native libraries交互,是其它编程语言交互的接口。
4、Runtime data area(运行时数据区域):这就是我们常说的JVM的内存。

作用 :首先通过编译器把 Java 代码转换成字节码,类加载器(ClassLoader)再把字节码加载到内存中,将其放在运行时数据区(Runtime data area)的方法区内,而字节码文件只是 JVM 的一套指令集规范,并不能直接交给底层操作系统去执行,因此需要特定的命令解析器执行引擎(Execution Engine),将字节码翻译成底层系统指令,再交由 CPU 去执行,而这个过程中需要调用其他语言的本地库接口(Native Interface)来实现整个程序的功能。

优质文章推荐

1、【吊打面试官】redis高频面试知识点和答案
2、【吊打面试官】spring高频面试知识点和答案
3、【吊打面试官】计算机网络高频面试题和答案
4、【吊打面试官】spring boot高频面试知识点
5、【吊打面试官】zookeeper大厂高频面试题和答案
6、【吊打面试官】消息队列高频面试知识点

扫码回复【资料】领取完整答案


全部评论

相关推荐

感觉这一周太梦幻了,就像一个梦,很不真实~~~感觉这个暑期,我的运气占了99成,实力只有百分之一4.15上午 腾讯csig 腾讯云部门,面完秒进入复试状态4.16下午 美团优选供应链部门,4.18上午发二面4.17晚上 阿里国际一面,纯拷打,面完我都玉玉了4.18下午 阿里国际二面,是我们leader面的我,很轻松~~4.18晚上 约了hr面4.19上午 hr面,下午两点口头oc4.19晚上 意向书说起来我的暑期好像一次都没挂过~~~~~难道我是天生面试圣体?----------------------------------------------------------------------六个月前,我还是0项目0刷题,当时想的是先把论文发出来再去找实习。结果一次组会,老师打破了我的幻想(不让投B会,只让投刊或者A)我拿头投啊!!!然后就开始物色着找实习,顺便做完了mit的6.s081,但是基本上还是没刷过题目-----------------------------------------------------------------------11月  一次偶然的机会,面进了某个耳机厂的手环部门,大概是做嵌入式的,用的是CPP。12月 莫名其妙拿到了国创的面试机会,0基础四天速成java基础!居然也给我面过了hhhhh,可能是面试没写题吧入职国创后的几个月,一直没活,天天搁那看剧,都快忘了还有暑期实习这回事了~~~~命运的齿轮在2.26开始转动,因为这一天美团开了,我开始慌了,因为那时的我什么都不会。lc,八股,sql全部是0进度。然后就开始了女娲补天,上班刷题,下班继续做之前的开源,顺便学一学八股。3月到现在,lc也刷到快200了,一天最多提交了47次~~~~~~~~~~八股根据别人的面经总结和博客,写了快十万字的笔记~~~~~~~~~~简历上的实习经历和开源,也努力去深挖了,写了几万字的记录~~~~~~所以面试的时候,基本上都能cover了,面试官问到的基础基本都会,不基础的我就把他往我会的地方引。结果好像还不错,基本上每个面试官评价都挺好的emmmmmmmm
投递阿里巴巴等公司10个岗位
点赞 评论 收藏
转发
点赞 1 评论
分享
牛客网
牛客企业服务