年轻人不讲武德,居然还搞不懂JVM?求你们来看阿里Java开发岗的招聘要求吧

image.png

​重试

最近有很多小伙伴吃了蚂蚁金服上市的酸柠檬,觉得马爸爸说的福报还是存在的。有人问我,进阿里到底难不难?

拜托,小梦也没进去,我怎么知道?

image.png

​重试

但是,本着刨根问底的精神,小天搜索了很多阿里Java[开发]岗位的招聘信息,把那些通用的常见的技术要求归纳一下,还没来得及做统计,但是下面的这张截图也八九不离十了,大家先将就着看看。

image.png

​重试

似乎图片不太清晰,没办法,小梦截了好几次图,都是这样。

还是等小梦天统计完所有的内容做更加清晰的图片放出来给大家看吧!这里小天会分享一个系列关于阿里[面试]的文章,一是为了给各位粉丝朋友一些建议,更是想自己积累着朝这个方向。

好了,废话不多说,这里还是其中一个非常重要的技术点——JVM。

image.png

​重试

深入理解JVM

先看一下JVM需要掌握的一些核心知识点。

image.png

​重试

xmind图

1、线程

2、JVM 内存区域

2.1. 程序计数器(线程私有)

2.2. 虚拟机栈(线程私有)

2.3. 本地方法区(线程私有)

2.4. 堆(Heap-线程共享)-运行时数据区

2.5. 方法区/永久代(线程共享)

3、JVM 运行时内存

3.1. 新生代

  • Eden 区

  • ServivorFrom

  • ServivorTo

  • MinorGC 的过程(复制->清空->互换)

  • eden、servicorFrom 复制到 ServicorTo,年龄+1

  • 清空 eden、servicorFrom

  • ServicorTo 和 ServicorFrom 互换

3.2. 老年代

3.3. 永久代

  • JAVA8 与元数据

4、垃圾回收与[算法]

4.1. 如何确定垃圾

  • 引用计数法

  • 可达性分析

4.2. 标记清除[算法](Mark-Sweep)

4.3. 复制[算法](copying)

4.4. 标记整理算法

4.5. 分代收集[算法]

  • 新生代与复制[算法]

  • 老年代与标记复制算法

5、JAVA 四种引用类型

5.1. 强引用

5.2. 软引用

5.3. 弱引用

5.4. 虚引用

6、GC 分代收集算法 VS 分区收集算法

6.1. 分代收集算法

  • 在新生代-复制算法

  • 在老年代-标记整理算法

6.2. 分区收集算法

7、GC 垃圾收集器

7.1. Serial 垃圾收集器(单线程、复制算法)

7.2. ParNew 垃圾收集器(Serial+多线程)

7.3. Parallel Scavenge 收集器(多线程复制算法、高效)

7.4. Serial Old 收集器(单线程标记整理算法 )

7.5. Parallel Old 收集器(多线程标记整理算法)

7.6. CMS 收集器(多线程标记清除算法)

  • 初始标记

  • [并发]标记

  • 重新标记

  • [并发]清除

7.7. G1 收集器

8、JAVA IO/NIO

8.1. 阻塞 IO 模型

8.2. 非阻塞 IO 模型

8.3. 多路复用 IO 模型

8.4. 信号驱动 IO 模型

8.5. 异步 IO 模型

8.6. JAVA IO 包

8.7. JAVA NIO

  • NIO 的缓冲区

  • NIO 的非阻塞

8.8. Channel

8.9. Buffer

8.10. Selector

9、JVM 类加载机制

image.png

​重试

以上核心知识点的具体内容,我已经整理好了

2022面试题总结JVM篇(27题)

真题警告

  1. 什么情况下会发生栈内存溢出?

  2. JVM 的内存结构,Eden 和 Survivor 比例。

  3. JVM 内存为什么要分成新生代、老年代和持久代。新生代中为什么要分Eden 和 Survivor?

  4. JVM 中一次完整的 GC 流程是什么样子的,对象如何晋升到老年代,说说你知道的几种主要的 JVM [参数]?

  5. 你知道哪几种垃圾收集器,各自的优缺点,重点讲下 cms 和 G1,包括原理,流程,优缺点。

  6. 垃圾回收算法的实现原理。

  7. 当出现了内存溢出,怎么排错?

  8. JVM 内存模型的相关知识了解多少,比如重[排序],内存屏障,happen- before,主内存,工作内存等。

  9. 讲讲 JAVA 的反射机制。

  10. 你们线上应用的 JVM 参数有哪些?

  11. g1 和 cms 区别,吞吐量优先和响应优先的垃圾收集器选择。

  12. 怎么打印线程栈信息。

  13. 请解释如下 jvm [参数]的含义?

  14. Java 中对象创建的几种方式?

  15. Java 中的对象一定在堆上分配内存吗?

  16. 运行时数据中哪些区域是线程共享的,哪些是独享的?

  17. Java 中数组是存储在堆上还是栈上?

  18. Java 对象创建的过程是怎么样的?

  19. 怎么获取堆和栈的 dump 文件?

  20. Minor GC 和 Full GC 的触发条件。

  21. 在 Java 语言中,可以作为 GC Roots 的对象有什么?

  22. 类加载过程。

  23. Java 内存泄漏的场景。

  24. jdk1.8 的虚拟机中内存模型变化。

  25. 频繁 GC 的原因。

  26. 高并发时,JVM 调优。

  27. System.gc()和 Runtime.gc()的区别。

image.png

​重试

面试题的答案,我已经整理好了!

image.png

​重试

还有Mysql、Redis、Spring、多线程、数据结构等更多资料等你来解锁!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值