下面昆明达内培训机构老师带大伙来看看:java虚拟机工作的原理,首先我想从宏观上介绍一下java虚拟机的工作原理。从最初的我们编写的java源文件(.java文件)是如何一步步执行的,如下图所示,首先java源文件经过前端编译器(javac或ecj)将.java文件编译为java字节码文件,然后jre加载java字节码文件,载入系统分配给jvm的内存区,然后执行引擎解释或编译类文件,再由即时编译器将字节码转化为机器码。主要介绍下图中的类加载器和运行时数据区两个部分。
类加载
类加载指将类的字节码文件(.class)中的二进制数据读入内存,将其放在运行时数据区的方法区内,然后在堆上创建java.lang.class对象,封装类在方法区内的数据结构。类加载的最终产品是位于堆中的类对象,类对象封装了类在方法区内的数据结构,并且向java程序提供了访问方法区内数据结构的接口。如下是类加载器的层次关系图。
启动类加载器(bootstrapclassloader):在jvm运行时被创建,负责加载存放在jdk安装目录下的jre\lib的类文件,或者被-xbootclasspath参数指定的路径中,并且能被虚拟机识别的类库(如rt.jar,所有的java.*开头的类均被bootstrap classloader加载)。启动类无法被java程序直接引用。
扩展类加载器(extension classloader):该类加载器负责加载jdk安装目录下的\jre\lib\ext的类,或者由java.ext.dirs系统变量指定路径中的所有类库,开发者也可以直接使用扩展类加载器。
应用程序类加载器(appclassloader):负责加载用户类路径(classpath)所指定的类,开发者可以直接使用该类加载器,如果应用程序中没有定义过自己的类加载器,该类加载器为默认的类加载器。
用户自定义类加载器(user classloader):jvm自带的类加载器是从本地文件系统加载标准的java class文件,而自定义的类加载器可以做到在执行非置信代码之前,自动验证数字签名,动态地创建符合用户特定需要的定制化构建类,从特定的场所(数据库、网络中)取得java class。
注意如上的类加载器并不是通过继承的方式实现的,而是通过组合的方式实现的。而java虚拟机的加载模式是一种委派模式。下层的加载器能够看到上层加载器中的类,反之则不行。类加载器可以加载类但是不能卸载类。
今天的讲述到这里就结束了,如果您对昆明达内培训机构老师所讲述的内容有简介或更好的理解,欢迎大家一起讨论!
编辑短信:姓名+电话+想要学习课程 发送至:18487146383,发送短信即可获得1000元免费7天试听机会哦!
联系人:李老师
电话(微信):18487146383
网站:http://km.java.tedu.cn
昆明达内职业培训学校
18087159764
华亿供应背负式捕鱼机效果看得见
山东乙腈生产厂家 齐鲁石化国标乙腈价格 乙腈价格低质量高
汽车开锁、国安开锁服务中心、南坊汽车开锁
供应广州杂物梯销售
幼儿园孩子的保护伞--微安宝
关于Java虚拟机工作的原理!
深圳盛世互联互联网线上推广全网营销模式专家
供应下水管001
万瑞 SRMGE-22 电熔半再结合镁铬砖
厂家直供24档理线架 24档金属理线架
厂家直销锌钢护栏铸铝阳台护栏40方管立柱平椭圆管连接件
阳泉煤矿车辆清洗设备供应清禾沐牌阳泉运输车辆清洗设备
快速补漆设备多少钱,东营市快速补漆,傲特汽车
供应虹鱼牌漂白针叶木浆
中西-边界泵送温度测定仪 型号:HC99-HCR3900
天津风口,天津金中基风口厂家,固定百叶风口
功明牌饺皮混沌皮自动撒粉机 新款上市啦
供应日照进口轴承NSK角接触球匹配型号
BY-600糖衣机
安庆市岗亭厂家销售移动售货亭售卖亭价格