【金三银四】Java虚拟机面试题(2021最新版)

目录

前言

一、Java内存模型

1. 我们开发人员编写的Java代码是怎么让电脑认识的

2. 为什么说java是跨平台语言

3. Jdk和Jre和JVM的区别

4. 说一下 JVM由那些部分组成,运行流程是什么?

5. 说一下 JVM 运行时数据区

6. 详细的介绍下程序计数器?(重点理解)

7. 详细介绍下Java虚拟机栈?(重点理解)

8. 你能给我详细的介绍Java堆吗?(重点理解)

9. 能不能解释一下本地方法栈?

10. 能不能解释一下方法区(重点理解)

11. 什么是JVM字节码执行引擎

12. 你听过直接内存吗?

13. 知道垃圾收集系统吗?

14. 堆栈的区别是什么?

15. 深拷贝和浅拷贝

16. Java会存在内存泄漏吗?请说明为什么?

二、垃圾回收机制及算法

17. 简述Java垃圾回收机制

18. GC是什么?为什么要GC

19. 垃圾回收的优点和缺点

20. 垃圾回收器的原理是什么?有什么办法手动进行垃圾回收?

21. JVM 中都有哪些引用类型?

22. 怎么判断对象是否可以被回收?

23. Full GC是什么

24. 对象什么时候可以被垃圾器回收

25. JVM 垃圾回收算法有哪些?

26. JVM中的永久代中会发生垃圾回收吗

三、垃圾收集器以及新生代、老年代、永久代

27. 讲一下新生代、老年代、永久代的区别

28. Minor GC、Major GC、Full GC是什么

29. Minor GC、Major GC、Full GC区别及触发条件

30. 为什么新生代要分Eden和两个 Survivor 区域?

31. Java堆老年代( Old ) 和新生代 ( Young ) 的默认比例?

32.为什么要这样分代:

33. 什么是垃圾回收器他和垃圾算法有什么区别

34. 说一下 JVM 有哪些垃圾回收器?

35. 收集器可以这么分配?(了解就好了)

36. 新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别?

37. 简述分代垃圾回收器是怎么工作的?

四、内存分配策略

38. 简述java内存分配与回收策率以及Minor GC和Major GC

五、虚拟机类加载机制

42. 简述java类加载机制?

43.类加载的机制及过程

44. 描述一下JVM加载Class文件的原理机制

45. 什么是类加载器,类加载器有哪些?

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、什么是JVM  JVMJava Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。  Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。二、JVM的组成我们先把JVM这个虚拟机画出来,如下图所示:从这张图中我们可以看出,JVM是运行在操作系统之上的,它与硬件没有直接的交互,我们再来看JVM由哪些部分组成,如下图所示:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值