文档章节

JVM面试题及其答案(待更新)

kanlianhui
 kanlianhui
发布于 2014/04/18 15:28
字数 353
阅读 1004
收藏 4
  1.     JVM内存模型?

  2.     写一段代码实现堆溢出?栈溢出?常量池溢出?方法区溢出?

  3.     类的生命周期?

  4.     哪四种情况会触发类的初始化(也就是主动引用)?

  5.     被动引用会触发初始化吗?请举例
        Class对象在堆中的作用?

  6.     类加载器(ClassLoader)的类加载模式?为什么要选择这种模式?双亲委托加载模式的代码实现?

  7.     如何实现自定义的ClassLoader?

  8.     JDK动态代理的原理?

  9.     虚拟机栈栈帧包含哪些部分以及各部分功能?

  10.     字节码执行引擎方法调用中静态分派和动态分派区别?重写与重载?

  11.     JVM为什么选用基于栈的指令集而不是基于二地址指令集?(可移植性)

  12.     动态代理的原理?好处?JDK动态代理与Cglib动态代理的区别?

  13.     垃圾收集算法?标记-清除算法缺点?复制算法缺点?标记-整理算法适用区域?解释一下分代收集算法?

  14.     内存分配与回收策略?

  15.     有哪些垃圾收集器以及各自区别?Serial与ParNew异同点? ParNew与Paralell Scanvenge区别?

        CMS最大特点及显著缺点?

  16.     哪些对象可归为GC Roots?

  17.     MinorGC与FullGC?

答案:

1、先去旅游,回来补上~


© 著作权归作者所有

kanlianhui
粉丝 9
博文 80
码字总数 36440
作品 0
浦东
私信 提问
加载中

评论(20)

harbinu
harbinu
17.MinorGC:发生在新生代
FullGC:老年代GC
harbinu
harbinu
16.虚拟机栈(栈帧中的本地变量表)中引用的对象
方法区中类静态属性引用的对象
方法区中常量引用的对象
本地方法栈中JNI(Native方法)引用的对象
harbinu
harbinu
15.Serial与ParNew异同点:ParNew是Serial的多线程版本
ParNew与Paralell Scanvenge区别:自适应调节策略
CMS最大特点及显著缺点:系统停顿时间短,给用户带来较好的用户体验
缺点:对CPU资源敏感,无法处理浮动垃圾,收集结束会有大量垃圾产生。

harbinu
harbinu
14.对象优先在Eden分配,大对象直接进入老年代,长期存活的对象进入老年代,动态对象年龄判定,空间担保分配
harbinu
harbinu
13.标记-请出算法:首先标记出需要回收的对象,在标记完成后统一轻触。
复制算法:将可用的内存划分为大小相等的两块,每次只使用其中的一块,一块用完了,就将还存活着的对象复制到另一块上,然后再把使用过的空间一次清理掉。
标记-整理算法:先标记-清理,后续让所有的存活的对象向一端移动,然后直接清理掉边界一歪的内存。
分代收集:根据各个年代的特点采用最适当的收集算法。
harbinu
harbinu
12.动态代理的优势在于实现了可以在原始类和接口还未知的时候,就确定了代理类的代理行为,当代理类与原始类脱离直接联系后,就可以很灵活的重用与不同的应用场景之中。
harbinu
harbinu
11.答案在括号里,可移植性
harbinu
harbinu
10.补充:
到底为什么会产生静态分派或者动态分派呢,或者为什么会产生重载和重写呢?
是因为静态类型是在编译期可知的,而实际类型的变化结果在运行期间才可确定。编译器在编译程序的时候并不知道一个对象的实际类型是什么。
harbinu
harbinu
10.静态分派:所有依赖静态类型来定位方法执行版本的分派动作称为静态分派。编译期间选择静态分派目标的过程是重载的本质。
动态分派:运行期间根据动态类型确定方法执行版本的分派过程称为动态分派。把常量池中的类方法符号引用解析到了不同的引用上的过程是重写的本质。
harbinu
harbinu
9.局部变量表:存放方法参数和方法内局部变量
操作数栈:方法执行的过程中各种字节码指令往此写入和提取内容
动态连接:栈帧中的符号引用在运行期间转化为直接引用
方法返回地址:退出方法
附加信息:jvm规范中没有描述的信息
金九银十,史上最强 Java 面试题整理。

以下会重新整理所有 Java 系列面试题答案、及各大互联网公司的面试经验,会从以下几个方面汇总,本文会长期更新。 Java 面试篇 史上最全 Java 面试题,带全部答案 史上最全 69 道 Spring 面试...

Java技术栈
2018/09/13
0
0
提给程序员和开发者的 10 道 Java 泛型面试题

关于泛型的面试题在 Java面试中变得越来越常见,因为 Java 5问世已经有相当长的时间了,越来越多的应用已经迁移到Java 5上来了,并且几乎所有新的Java开发工作也都是在Tiger(Java 5的项目代号...

lwei
2013/10/18
13.5K
30
Java面试:投行的15个多线程和并发面试题

本文由ImportNew -一杯哈希不加盐 翻译自dzone。欢迎加入翻译小组。转载请见文末要求。 多线程和并发问题已成为各种 Java 面试中必不可少的一部分。如果你准备参加投行的 Java 开发岗位面试,...

ImportNew
2018/08/23
0
0
java编程学习常见面试题及答案

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互...

Java小辰
2018/05/22
0
0
大佬分享:180+道Java面试题目!含答案解析!

作者:我是offer 链接:https://www.nowcoder.com/discuss/84736 来源:牛客网 大厂常见问题 写视频点播网站文件下载接口 基础变量/数组写出模拟maven导入包过程 写出新变脸内存分配,模拟垃...

Java高级架构
2018/07/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
2.8K
22
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
4
0
用好项目管理工具,人人都可以成为项目经理

现在市面上的项目管理工具越来越多了,但是大多数都是一些协同工具或轻量项目管理工具。如果是多团队、跨部门使用或者企业级的项目管理,从管理思想到工具运用,需要适应企业的业务流程体系,...

cs平台
昨天
12
0
只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
69
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
32
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部