JVM概述

jvm、jre、jdk的关系

1、JDK(Java Development Kit):java的开发工具包,包括jre+jvm

2、JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类库

3、JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性

      (1)jvm执行过程:加载—>验证—>执行—>运行环境

(2)类加载机制(class loader):

        1)bootstrap loader:负责加载$JAVA_HOME中jre/lib/rt.jar里所有的class,由C++实现,不是ClassLoader子类

        2)extension classLoader:负责加载扩展库,包括$JAVA_HOME中jre/lib/*.jar或-Djava.ext.dirs指定目录下的jar包

        3)application loader:负责加载classpath所指定的位置的类或者是jar文档,它也是java程序默认的类加载器

  双亲委托机制:

      a.当前ClassLoader首先从自己已经加载的类中查询是否此类已经加载,如果已经加载则直接返回原来已经加载的类。

       b.当前ClassLoader的缓存中没有找到被加载的类的时候,委托父类加载器去加载,父类加载器采用同样的策略,首先查看自己的缓存,然后委托父类的父类去加载,一直到Bootstrap ClassLoader

       c.当所有的父类加载器都没有加载的时候,再由当前的类加载器加载,并将其放入它自己的缓存中,以便下次有加载请求的时候直接返回。

 

(3)执行引擎(Execution Engine):通过class loader装载,被分配到JVM运行时数据区的字节码会被执行引擎执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值