前言:文章中只罗列出知识点问题,并不提供对应的答案,仅仅作为检验自己是否对某个知识点存在空缺或遗忘,答案请自行Google;
2018年3月8日记录:
一.说一下 Java 的垃圾回收机制?
- a.System.gc()
- b.运行时的内存分布情况
- c.如何判断对象已死(两种算法)
- d.4种引用方式
- e.4种垃圾回收算法
二.Java虚拟机内存模型(区别于 Java内存模型)
- a.结构,包括(执行引擎、本地库接口、本地方法库)
- b.详细说明“运行时数据区域”
三.JVM的4种引用和使用场景
四.引用计数法与可达性分析算法 / 如何判断对象是不是垃圾
- a.互相引用
- b.哪些可以作为GC Roots对象
五.堆里面的分区和各自的特点
六.Minor GC 与 Full GC 分别在什么时候发生
- a.内存分配规则
七.几种垃圾回收算法的原理和特点,应用场景
八.GC收集器有哪些?详细谈一下CMS收集器和G1收集器的特点
九.内存泄漏和内存溢出
- a.泄漏的原因
- b.内存泄漏的解决方案
- c.实际开发场景中,如何查找内存泄漏(工具)
- d.内存溢出的几种情况
- e.导致内存溢出的原因
- f.内存溢出的解决方法
十.如何减少gc出现的次数/Java内存管理
十一.数组多大放在JVM老年代
- a.永久代对象如何GC
- b.如果想不被GC怎么办
- c.如何想在GC中生存1次怎么办
十二.JVM常用的启动参数
十三.常用内存调试工具
十四.双亲委派模型
- a.如何自定义类加载器
- b.如何打破双亲委派机制
十五.描述Java类加载器的工作原理及其组织结构
十六.Java编译过程
十七.字节码文件的格式
十八.即时编译器的优化方法
十九.静态分派与动态分派
- a.这块可以与Java动态(重载、重写)的表现形式一起说明
二十.new的对象如何不分配在堆而分配在栈上呢
- a.详细介绍方法逃逸