JVM知识大纲思维导图

图片[1]-JVM知识大纲思维导图 - 程序员知识精选-程序员知识精选
图片[2]-JVM知识大纲思维导图 - 程序员知识精选-程序员知识精选
图片[3]-JVM知识大纲思维导图 - 程序员知识精选-程序员知识精选

第一:内存结构

线程私有区域
    虚拟机栈
        栈帧
            动态链接
            操作数栈
            局部变量表
            方法返回地址
        异常
    本地方法栈
    程序计数器
线程共享区域
    堆
        新生代
            Eden区
            Survivor(from)区
            Survivor(to)区
        老年代
    方法区
        运行时常量池
        静态变量
        final类型常量
        类信息
直接内存

第二:JVM中的对象

对象的分配
对象的内存布局
    对象头
    对象的实例数据
    对齐填充
对象的访问方式
    指针
    句柄
    两种方式的比较
内存分配
    对象优先在Eden区分配
    大对象直接进入老年代
    长期存活对象进入老年区
    对象年龄动态判定
    空间分配担保
JVM如何实现泛型

第三:垃圾回收算法与垃圾回收器

对象是否存活
    引用计数法
    可达性分析算法
        GC Roots
    请忘记“finalize”
内存回收
    Minor GC
    Full GC
回收对象引用类型
    强引用
    软引用
    弱引用
    虚引用
垃圾收集算法
    标记-清除
    复制算法
    标记-整理
    分代回收算法
垃圾收集器
    Serial收集器
    ParNew收集器
    Parallel Scavenge收集器
    Serial Old收集器
    ParNew Old收集器
    CMS收集器
    G1收集器

第四:JVM执行子程序

class文件结构
    魔数
    版本号
    常量池
        字面量
        符号引用
    访问标志
    类索引,父类索引,接口索引集合
    字段表集合
    方法表集合
        访问标志
        名称索引
        描述符索引
        属性表集合
    属性表集合
方法调用
    动态绑定
    参数传递
    分派
        静态分派
        动态分派
        单分派
        多分派
类生命周期
    加载
    验证
    准备
    解析
    初始化
    使用
    卸载
类加载过程
    加载
    验证
    准备
    解析
    初始化
类加载器
    启动类加载器
    其他加载器
    双亲委派模型
Tomcat类加载机器

第五:JVM性能优化

内存溢出
    程序在申请内存时,没有足够的内存空间
    内存溢出的构造方式
        堆溢出
        栈溢出
        方法区和运行时常量池溢出
        本机内存直接溢出
内存泄漏
    程序在申请内存后,无法释放已申请的内存空间
    原因
        长生命周期的对象持有短生命周期对象的引用
        连接未关闭
        变量作用域不合理
        内部类持有外部类
        Hash值改变
分析工具MAT
JDK工具
    jps
    jstat
    jinfo
    jmap
    jhat
    jstack
    jsconsole
    visualvm
JVM编译期优化
    语义分析与字节码生成
    逃逸分析
调优案例与实战
    GC调优
    调优实战

第六:编写高效优雅的JAVA程序

Java语法糖
    泛型与类型的擦除
面向对象
    构造器参数太多怎么办?
    不需要实例化的类应该构造器私有
    不要创建不必要的对象
    避免使用终结方法
    使类和成员的可访问性最小化
    使可变性最小化
    优先使用复合胜过继承
    接口优于抽象类
方法
    可变参数要谨慎使用
    返回零长度的数组或集合,不要返回null
    优先使用标准的异常
通用程序设计
    用枚举代替int常量
    将局部变量的作用域最小化
    精确计算,避免使用float和double
    当心字符串连接的性能
    控制方法的大小

第七:深入了解性能优化

常用性能评价/测试指标
    响应时间
    并发数
    吞吐量
    相互之间的关系
常用的性能优化手段
    总原则
    前端优化手段
    应用服务器性能优化
    存储性能优化
应用服务器性能优化
    缓存
    集群
    异步
    应用相关
        代码级
        并发编程
        资源复用
        JVM
        存储性能优化
© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发
程序员吾非同的头像-程序员知识精选

昵称

取消
昵称表情代码图片