您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

关于Java虚拟机工作的原理!

2018/11/3 15:53:19发布73次查看
 下面昆明达内培训机构老师带大伙来看看: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

该用户其它信息

VIP推荐

18087159764
 发送短信
免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product