Java虚拟机常见面试题

发布时间:2021-06-28 16:39:13 作者:chen
来源:亿速云 阅读:163

这篇文章主要介绍“Java虚拟机常见面试题”,在日常操作中,相信很多人在Java虚拟机常见面试题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java虚拟机常见面试题”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

前言

我坚信,机会永远属于有准备的人,我们与其羡慕他人的成功,不如从此刻起,积累足够多的知识和面试经验,为将来进入更好的公司做好充分的准备!想让面试官在短短的几十分钟内认可你的能力?想在最短的时间内收获 Java 技术栈最核心的知识点?想要更全面更深入的了解 Java 技术?这篇文章给你想要的所有答案。

小编分享的这份Java后端开发面试总结包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL数据库、消息中间件MQ、Dubbo、Linux、ZooKeeper、 分布式&数据结构与算法等26个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!【已完结】

完整版Java面试题地址:2021最新面试题合集集锦。

序号专题内容链接
1中间件Java中间件面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5012470
2微服务Java微服务面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5014045
3并发编程Java并发编程面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5017511
4Java基础Java基础知识面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5020008
5Spring BootSpring Boot面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5021192
6RedisRedis面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5022120
7Spring MVCSpring MVC面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5022126
8Spring CloudSpring Cloud面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5023319
9MySQL优化MySQL优化面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5023320
10JVMJVM性能调优面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5023321
11LinuxLinux面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5025281
12MybatisMybatis面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5025282
13网络编程TCP,UDP,Socket,Http网络编程面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5025284
14设计模式设计模式面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5033946
15大数据大数据面试题100道(2021最新版)https://my.oschina.net/u/4678580/blog/5037399
16TomcatTomcat面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5034995
17多线程多线程面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5036124
18NginxNginx_BIO_NIO_AIO面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5037626
19memcachememcache面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5033471
20java异常java异常面试题(2021最新版)https://my.oschina.net/u/4678580/blog/5038814
21Java虚拟机Java虚拟机面试题(2021最新版)持续更新中!
22Java集合Java集合面试题(2021最新版)持续更新中!
23Git常用命令Git常用命令(2021最新版)持续更新中!
24ElasticsearchElasticsearch面试题(2021最新版)持续更新中!
25DubboDubbo面试题(2021最新版)持续更新中!

一、Java内存模型

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

Java虚拟机常见面试题

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

3. Jdk和Jre和JVM的区别

Java虚拟机常见面试题

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

Java虚拟机常见面试题

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

Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存区域划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有些区域随着虚拟机进程的启动而存在,有些区域则是依赖线程的启动和结束而建立和销毁。Java 虚拟机所管理的内存被划分为如下几个区域:

Java虚拟机常见面试题

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

Java虚拟机常见面试题

Java虚拟机常见面试题

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

  1. Java虚拟机是线程私有的,它的生命周期和线程相同。

  2. 虚拟机栈描述的是Java方法执行的内存模型: 每个方法在执行的同时 都会创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。

解释:虚拟机栈中是有单位的,单位就是栈帧,一个方法一个栈帧。一个栈帧中他又要存储,局部变量,操作数栈,动态链接,出口等。

Java虚拟机常见面试题

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

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

  1. 本地方法栈很好理解,他很栈很像,只不过方法上带了 native 关键字的栈字

  2. 它是虚拟机栈为虚拟机执行Java方法(也就是字节码)的服务方法

  3. native关键字的方法是看不到的,必须要去oracle官网去下载才可以看的到,而且native关键字修饰的大部分源码都是C和C++的代码。

  4. 同理可得,本地方法栈中就是C和C++的代码

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

  1. 方法区是所有线程共享的内存区域,它用于存储已被Java虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

  2. 它有个别命叫Non-Heap(非堆)。当方法区无法满足内存分配需求时,抛出OutOfMemoryError异常。

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

12. 你听过直接内存吗?

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

14. 堆栈的区别是什么?

Java虚拟机常见面试题

15. 深拷贝和浅拷贝

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

二、垃圾回收机制及算法

17. 简述Java垃圾回收机制

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

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

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

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

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

Java虚拟机常见面试题

23. Full GC是什么

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

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

Java虚拟机常见面试题

Java虚拟机常见面试题

Java虚拟机常见面试题

Java虚拟机常见面试题

Java虚拟机常见面试题

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

垃圾回收不会发生在永久代,如果永久代满了或者是超过了临界值,会触发完全垃圾回收(Full GC)。如果你仔细查看垃圾收集器的输出信息,就会发现永久代也是被回收的。这就是为什么正确的永久代大小对避免Full GC是非常重要的原因。请参考下Java8:从永久代到元数据区 (注:Java8中已经移除了永久代,新加了一个叫做元数据区的native内存区)

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

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

Java虚拟机常见面试题

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

  1. Minor GC是新生代GC,指的是发生在新生代的垃圾收集动作。由于java对象大都是朝生夕死的,所以Minor GC非常频繁,一般回收速度也比较快。(一般采用复制算法回收垃圾)

  2. Major GC是老年代GC,指的是发生在老年代的GC,通常执行Major GC会连着Minor GC一起执行。Major GC的速度要比Minor GC慢的多。(可采用标记清楚法和标记整理法)

  3. Full GC是清理整个堆空间,包括年轻代和老年代

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

Java虚拟机常见面试题

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

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

32.为什么要这样分代:

Java虚拟机常见面试题

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

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

Java虚拟机常见面试题

Java虚拟机常见面试题

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

Serial / Serial Old
Serial / CMS
ParNew / Serial Old
ParNew / CMS
Parallel Scavenge / Serial Old
Parallel Scavenge / Parallel Old
G1

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

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

四、内存分配策略

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

Java虚拟机常见面试题

五、虚拟机类加载机制

42. 简述java类加载机制?

43.类加载的机制及过程

Java虚拟机常见面试题

Java虚拟机常见面试题

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

Java虚拟机常见面试题

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

Java虚拟机常见面试题

46. 说一下类装载的执行过程?

Java虚拟机常见面试题

47. 什么是双亲委派模型?

Java虚拟机常见面试题

六、JVM调优

48. JVM 调优的参数可以在那设置参数值

Java虚拟机常见面试题

49. 说一下 JVM 调优的工具?

Java虚拟机常见面试题

50. 常用的 JVM 调优的参数都有哪些?

#常用的设置

51. JVM的GC收集器设置

到此,关于“Java虚拟机常见面试题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. 常见的java面试题有哪些
  2. Python常见面试题有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:Android中怎么实现登录记住多个密码功能

下一篇:Android应用中怎么接入微信分享功能

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》