JVM知识点

类的生命周期

      类的加载过程包括  加载、验证、准备、解析、初始化 五个阶段

类加载阶段

       1、通过一个类的全限定名来获取其定义的二进制字节流

       2、将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构

       3、在java堆中生成一个代表这个类的java.lang.Class对象,作为对方法区中这些数据的访问入口

JVM初始化步骤

      1、假如这个类还没有被加载和连接,则程序先加载并连接该类

       2、假如该类的父类还没有被初始化,则先初始化其直接父类

       3、假如类中有初始化语句,则系统依次执行这些初始化语句

JVM结束生命周期

       执行System.exit() 方法

       程序正常执行结束

       程序在执行过程中遇到异常或错误而异常终止

      由于操作系统出现错误而导致java虚拟机进程终止

类加载三种方式

      命令行启动应用时候由JVM初始化加载

      通过Class.forName()方法动态加载

      通过ClassLoader.loadClass()方法动态加载

      注意:Class.forName()将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块。ClassLoader.loadClass()只会把.class文件加载到jvm中。


GC算法

       标记-清除算法   效率较低,存在不连续空间

       复制算法           内存容量只能用一般

       标记-压缩算法      将存活的对象向一端移动

       分代收集算法

       

JVM内存

        堆内存:最大的一块内存,由年轻代和老年代组成

        方法区:存储类信息,常量,静态变量等数据

       栈  :虚拟机栈和本地栈,主要用于方法的执行

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值