当前位置 博文首页 > 小杰爱吃蛋的博客:一篇文章掌握整个JVM,JVM超详细解析!!!

    小杰爱吃蛋的博客:一篇文章掌握整个JVM,JVM超详细解析!!!

    作者:[db:作者] 时间:2021-09-20 19:31

    JVM

      • 先想想一些问题
        • 1 我们开发人员编写的Java代码是怎么让电脑认识的
        • 2 为什么说java是跨平台语言
        • 3 Jdk和Jre和JVM的区别
        • 4 为什么要学习JVM
      • 深入学习JVM
        • 1 JVM运行时数据区
        • 2 解析JVM运行时数据区
          • 2.1 方法区(Method Area)
          • 2.2 Java堆(Java Heap)
          • 2.3 程序计数器(Program Counter Register)
          • 2.4 Java虚拟机栈(Java Virtual Machine Stacks)
          • 2.5 本地方法栈(Native Method Stack)
        • 3 Java内存结构
          • 3.1 直接内存(Direct Memory)
          • 3.2 JVM字节码执行引擎
          • 3.3 垃圾收集系统
        • 4 JVM的垃圾回收机制
          • 4.1 什么是垃圾回收机制
          • 4.2 finalize方法作用
          • 4.3 新生代、老年代、永久代(方法区)的区别
            • 4.3.1 为什么要这样分代:
            • 4.3.2 Minor GC、Major GC、Full GC区别及触发条件
          • 4.4 如何判断对象是否存活
            • 4.4.1 引用计数法
            • 4.4.2 可达性分析法
          • 4.5 垃圾回收机制策略(也称为GC的算法)
            • 4.5.1 引用计数算法(Reference counting)
            • 4.5.2 标记–清除算法(Mark-Sweep)
            • 4.5.3 标记–整理算法
            • 4.5.4 复制算法
            • 4.5.5 分代算法(主要的算法就是上面四种,这个是附加的)
        • 5 垃圾收集器
          • 5.1 什么是垃圾收集器?
          • 5.2 垃圾回收器详解
            • 5.2.1 Serial
            • 5.2.2 ParNew
            • 5.2.3 Parallel Scavenge
            • 5.2.4 Serial Old
            • 5.2.5 Parallnel old
            • 5.2.6 CMS
            • 5.2.7 G1
        • 6 JVM参数配置
          • 6.1 JVM内存参数简述
          • 6.2 JVM的GC收集器设置
          • 6.3 JVM参数在哪设置
            • 6.3.1 IDEA在哪里设置JVM参数
            • 6.3.2 Eclipse在哪里设置JVM参数
            • 6.3.3 war(Tomcat)包在哪里设置JVM参数
            • 6.3.4 Jar包在哪里设置JVM参数
          • 6.4 调优总结
        • 7 类加载器
          • 7.1 类加载的机制及过程
            • 1、加载
            • 2、连接过程
            • 3、初始化
          • 7.2 类加载器的介绍
            • 1 根类加载器(bootstrap class loader)
            • 2 扩展类加载器(extensions class loader)
            • 3 系统类加载器(system class loader)
          • 7.3 理解双亲委派模式
          • 7.4 类加载器间的关系
        • 8 JVM可视化工具
            • 8.1为什么要可视化工具
          • 8.2 visualVm
            • 8.2.1 打开visualVm
            • 8.2.2 本地测试项目JVM运行状态
            • 8.2.3 测试服务器项目JVM运行状态
          • 8.3 jconsole
            • 8.3.1 启动JConsole
            • 8.3.2 远程连接项目也很简单,和 visualVm基本一致,可以自己研究一下
    cs