java类加载器的示例分析

介绍

这篇文章给大家分享的是有关的java类加载器的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

java的优点是什么

1。简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2。面向对象;3。分布性,Java是面向网络的语言;4。鲁棒性、java提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。5。安全性,用于网络,分布环境下的Java必须防止病毒的入侵。6。体系结构中立,只要安装了Java运行时系统,就可在任意处理器上运行。7。可移植性、Java可以方便地移植到网络上的不同机器。8。解释执行,Java解释器直接对Java字节码进行解释执行。

<强> 1,类加载器概念

类加载器,用来加载Java类到Java虚拟机中,一般来说,Java虚拟机使用Java类的方式如下:Java源程序(.java 文件)在经过Java编译器编译之后就被转换成Java字节代码(.class 文件),类加载器,负责读取Java字节代码,并转换成,java.lang.Class 类的一个实例

<强> 2,发生的时期

(1)遇到,新的getstatic, putstatic, invokestatic 这四条字节码指令时,如果类还没进行初始化,则需要先触发其初始化。

(2)使用,java.lang.reflect 包的方法对类进行反射调用的时候,如果类还没进行初始化,则需要先触发其初始化。

(3)当初始化了一个类的时候,如果发现其父类还没进行初始化,则需要先触发其父类的初始化。

(4)当虚拟机启动时,用户需要指定一个执行的主类,即调用其,# main (String [] args),方法,虚拟机则会先初始化该主类。

(5)当使用JDK7的动态语言支持时,如果一个,java.lang.invoke.MethodHandle 实例最后的解析结果为REF_getStatic, REF_putStatic, REF_invokeStatic的方法句柄,并且这个方法句柄所对应的类没有进行过初始化,则需要先触发其初始化。

<强> 3,加载类的方式

(1)加载,是找到,.class 文件并把这个文件包含的字节码加载到内存中。

(2)连接,又可以分为三个步骤,分别是字节码验证,类类数据结构分析及相应的内存分配,最后的符号表的解析。

(3)初始化(类中静态属性和初始化赋值),以及使用(静态块的执行)等。

感谢各位的阅读!关于“Java类加载器的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

java类加载器的示例分析