首页 > 其他 > 详细

jvm及并发面试题

时间:2021-05-26 14:58:25      阅读:31      评论:0      收藏:0      [点我收藏+]

JVM常见面试题

https://blog.csdn.net/qq_41701956/article/details/100074023

1. JVM的内存空间

线程独有:
程序计数器
虚拟机栈
本地方法栈
线程共有:

方法区

2.JAVA堆内存分配 JVM内存为什么要分成新生代,老年代,持久代。新生代中为什么要分为Eden和Survivor

3.垃圾回收算法

  1. 标记-清理
  2. 标记-复制
  3. 标记-整理
  4. 分代回收

3.垃圾收集器

新生代

  • Serial: 单线程垃圾收集器, 标记-复制
  • Par New: 多线程版本,标记-复制
  • Parallel Scavenge: 面向吞吐量的垃圾收集器,标记-复制
    老生代:
  • Serial Old: 老年代版本,标记-整理
  • Parallel Scavenge:Parallel Scavenge 的老年代版本,标记整理
  • CMS: 追求最短回收停顿时间的垃圾收集器,标记清理; 初始标记,并发标记,重新标记,并发清理

新生代+老年代

  • G1 : 追求可预测的停顿时间 ,标记整理算法;初始标记,并发标记,最终标记,并发清理

4.垃圾回收流程

初始标记,并发标记,最终标记,并发清理

5.内存溢出和内存泄露

内存溢出:没有足够的内存分配
内存泄露:分配的内存没有回收

6.类加载机制

https://www.jianshu.com/p/dd39654231e0

  • 加载:根据类的全限定名称获取类的字节码,根据字节码生成在内存中生成一个Class对象,作为类的入口
  • 链接:
    验证: 确保class文件符合JVM规范 1. 4.符号验证
    准备:初始化类变量为零值
    解析:将符号标记引用为指针引用
  • 初始化:调用方法,该方法是JVM自动收集类变量的赋值 和static代码块生成

7.双亲委派模型

类加载器 :启动类加载器,扩展类加载器,应用类加载器
如何打破双亲委派模型?

jvm及并发面试题

原文:https://www.cnblogs.com/zhouyu0-0/p/14811742.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!