微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

涨薪难?工作5年了你还不知道这份超详细JVM内存结构,老板也很难办啊

现在大大小小的公司对于JAVA岗的要求越来越高,面试的时候JVM相关问题基本上是必须要问的,你说你在简历上加“熟悉JVM底层结构”的时候心里有底气吗?这些是通常面试官问的比较多的问题,你都了解吗?

  • 说一下 JVM 运行时数据区吧,都有哪些区?分别是干什么的?
  • Java 8 的内存分代改进 
  • 举例栈溢出的情况?
  • 调整栈大小,就能保存不出现溢出吗?
  • 分配的栈内存越大越好吗?
  • 垃圾回收是否会涉及到虚拟机栈?
  • 方法中定义的局部变量是否线程安全?

也不单单正对于面试,更重要的是构建自己的JVM知识体系,Javaer们技术栈要有广度,但是JVM的掌握必须有深度。这份JVM内存结构资料是我见过最全的了,先给大家展示部分截图。

一、线程

二、JVM内存区域

  • 程序计数器(线程私有)
  • 虚拟机栈(线程私有)
  • 本地方法区(线程私有)
  • 堆(Heap-线程共享)-运行时数据区
  • 方法区/永久代(线程共享)

三、JVM运行时内存

  • 新生代
  • 老年代
  • 永久代

四、垃圾回收与算法

  • 如何确定垃圾
  • 标记清除算法(Mark-Sweep)
  • 复制算法(copying)
  • 标记整理算法(Mark-Compact)
  • 分代收集算法

五、java四种引用类型

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

  • 分代收集算法
  • 分区收集算法

七、GC垃圾收集器

  • Serial垃圾收集器(单线程、复制算法)
  • ParNew垃圾收集器(Serial+多线程)
  • Parallel Scavenge收集器(多线程复制算法、高效)
  • Serial Old收集器(单线程标记整理算法)
  • Serial Old收集器(多线程标记整理算法)
  • CMS收集器(多线程标记整理算法)
  • G1收集器

八、JAVA IO/NIO

  • 阻塞IO模型
  • 非阻塞IO模型
  • 多路复用IO模型
  • 信号驱动IO模型
  • 异步IO模型
  • JAVA IO包
  • JAVA NIO
  • Channel
  • Buffer
  • Selector

九、JVM类加载机制

  • 加载
  • 验证
  • 准备
  • 解析
  • 符号引用
  • 直接引用
  • 初始化
  • 类构造器
  • 类加载项
  • 双亲委派
  • Osgi(动态模型系统)

除此之外还有全套JAVA进阶资料,大量应对各个公司的面试经验技巧,因为篇幅原因就不展示了,有需要可以的点击下方微信名片免费领取。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐