Android开发面试指南:Java虚拟机(JVM)篇 (附答案)

面试考察点

  • Java虚拟机(JVM)内存结构
  • Java对象常见活动:创建、内存布局、访问定位、如何判断存活 垃圾
  • 收集相关:垃圾收集算法、垃圾收集器
  • 类加载相关:类加载过程、类加载器
  • 方法分派模型:静态分派、动态分派
    在这里插入图片描述

考察点1:Java虚拟机(JVM)内存结构

Java虚拟机在运行Java程序时,会管理着一块内存区域:运行时数据区。这里考察的内容是:

  • 内存模型 & 分区具体有哪些
  • 每个分区的作用、存放的内容是什么
  • Java堆分区内的新生代、老年代划分内存比例及其各自的特点是什么

考察点2:Java对象常见活动

主要考察Java对象在底层的一些常见活动,主要包括:

  • 一个Java对象是如何被创建的?即Java对象的创建过程。
  • 在 Java对象创建后,是如何被存储在Java内存里的?即Java对象的内存布局。
  • 当建立了一个Java对象后,该如何访问到该对象?即Java对象的访问定位。
  • 如何判断Java对象是否存活?即**Java对象的存活准则,**包括:引用计数法、引用链法(可达性分析法)的具体相关内容。

考察点3:垃圾收集相关

主要包括:垃圾收集算法、垃圾收集器

1. 垃圾收集算法

不同的内存区域采用不同的垃圾收集算法,而不同垃圾收集算法决定了垃圾收集的效率 & 效果。主要考察点包括:

  • 垃圾收集算法有哪些类型?
  • 每种垃圾收集算法的原理、特点、应用场景分别是什么?
  • Minor GC 与 Full GC 分别在什么时候发生?
  • 如果需要优化垃圾收集方法,有什么方向及思路?

2.垃圾收集器

垃圾收集器是垃圾收集算法的具体实现,考察的内容包括:

  • 常见的垃圾收集器有哪些?
  • 不同类型的垃圾收集器其优点、缺点是什么?
  • CMS收集器跟G1收集器有什么了解?它们的特点分别是什么?

考察点4:类加载

即Java类是如何被加载的。这里主要考察的内容是:

  • 类加载的本质是什么?
  • 类加载的过程有哪些步骤?
  • 类加载的每个步骤及作用具体是什么?
  • 如何确定被加载类在Java虚拟机的唯一性?
  • 类加载器有哪些类型?
  • 分别负责加载哪种类型的类?
  • 如何自定义一个类加载器 双亲委派模型具体指的是什么?请阐述其工作流程。

考察点5:方法分派
方法分派即指:确定执行哪个方法的过程。这里主要考察的内容是:

  • 方法分派的类型有哪些?
  • 如何理解:变量的静态类型 & 动态类型
  • 静态分派及动态分派的定义、特点、应用场景及区别

至此,关于面试指南中的Java虚拟机(JVM) 篇讲解完毕。下面我会对面试内容继续进行讲解,上述问题的答案,具体请参考文档《Android面试题大全》
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值