Java笔记之JVM

1、JVM内存模型

线程私有区:

        程序计数器:线程私有的,每个线程一份,内部保存的字节码的行号,用于记录当前正在执行的字节码指令地址

        虚拟机栈:每个方法执行时都会创建一个栈桢来存储方法的变量表、操作数栈、返回值、返回地址等信息

        本地方法栈:和虚拟机栈作用相似,但是它不是为Java方法服务,而是本地方法

线程共享区:

        方法区:用于存放被虚拟机加载的元数据信息

        堆:用于存放对象实例和数组,是垃圾回收的主要区域

2、对象分配规则

      对象优先分配在Eden区,如果Eden区没有足够的空间时,虚拟机执行一次MinorGC。大对象直接分配在老年代,长期存活的对象进入老年代

3、JVM加载class文件原理机制

      JVM中类的加载是由类加载器和它的子类来实现的,类加载器负责在运行时查找和装入类文件中的类,把类的class文件中的数据加载到内存中。

4、类加载过程

      类加载过程:

           加载:查找并加载类的二进制数据在堆中创建类的对象

           链接:

                   验证:格式检查

                    准备:为类的静态变量分配内存,并将其初始化为默认值

                     解析:将常量池中的符合引用替换成直接引用

        初始化:为类的静态变量赋予正确的初始值

        使用:new出对象在程序中使用

        卸载:执行垃圾回收

5、类加载器

      类加载器:启动类加载器、扩展类加载器、应用类加载器、自定义加载器

6、双亲委派机制

      加载某个类时,先委托上一级的加载器加载,如果上级加载器还有上级,则继续向上委托。如果该类委托上级没有被加载,子类加载器才尝试加载该类。

       双亲委派机制可以避免一个类被重复加载,保证唯一性。保证API的核心类库不会被修改。

7、垃圾回收算法

      标记-清除

       标记-整理

        复制算法

        分代算法

8、垃圾回收器

      串行垃圾回收器:Sreal GC

      并行垃圾回收器:ParNew GC

       CMS垃圾回收器

      G1垃圾回收器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值