zoukankan      html  css  js  c++  java
  • JVM原理及GC

    1. JVM原理

      JVM简介:JVM, 中文名是Java虚拟机, 是一个虚拟的机器,用来模拟通用的物理机。 JVM是一个标准,一套规范,  规定了.class文件在其内部运行的相关标准和规范。

      类加载器:从JVM外部以二进制字节流的方式加载到JVM中。

      JVM本身有至少三种类加载器:BootStrapClassLoader(根类加载器,C++实现, 加载位于jre/lib/rt.jar)、ExtensionClassLoader(扩展类加载器, 主要用于加载jre/lib/ext/下的jar)、AppClassLoader(加载classpath环境变量所指定的class)

      JVM类加载机制:自下而上检测,自上而下加载

      注意:BootStrapClassLoader加载的类,getClassLoader()返回null

      类加载过程:加载、连接(验证、准备、解析)、初始化

      JVM运行时数据区:

        程序计数器:当前线程执行字节码指令的指示器

        虚拟机栈:和计数器一样,也是线程私有的,生命周期同线程一致。每个方法在执行时,都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。

        本地第方法栈:此栈和JVM栈作用非常类似, 不同在于本地方法栈为虚拟机使用到的Native方法服务    

        Java堆:是JVM管理内存中最大的一块。被所有线程共享一块区域。堆是GC垃圾收集器管理的主要区域。

        方法区:用来存储已被虚拟机加载的类信息, 常量、静态变量、即时编译器编译后的代码等数据。

    2. GC垃圾收集

  • 相关阅读:
    【转载】Dom篇
    【转载】Eclipse自动编译问题
    RabbitMQ
    分布式消息中间件
    分布式限流算法
    分布式限流和熔断
    数据库中间件
    redis 集群原理
    redis 哨兵模式(读写分离)
    redis 和memcache 区别
  • 原文地址:https://www.cnblogs.com/wuan90/p/11242224.html
Copyright © 2011-2022 走看看