首页编程java编程什么是java类加载器 什么是类的加载,何时加载

什么是java类加载器 什么是类的加载,何时加载

编程之家2023-10-10120次浏览

今天给各位分享什么是java类加载器的知识,其中也会对什么是类的加载,何时加载进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

什么是java类加载器 什么是类的加载,何时加载

java中类加载器是怎么工作的

JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)

链接又分为三个步骤,验证、准备、解析

1)装载:查找并加载类的二进制数据;

什么是java类加载器 什么是类的加载,何时加载

2)链接:

验证:确保被加载类的正确性;

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

什么是java类加载器 什么是类的加载,何时加载

解析:把类中的符号引用转换为直接引用;

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

那为什么我要有验证这一步骤呢?首先如果由编译器生成的class文件,它肯定是符合JVM字节码格式的,但是万一有高手自己写一个class文件,让JVM加载并运行,用于恶意用途,就不妙了,因此这个class文件要先过验证这一关,不符合的话不会让它继续执行的,也是为了安全考虑吧。

准备阶段和初始化阶段看似有点牟盾,其实是不牟盾的,如果类中有语句:private static int a= 10,它的执行过程是这样的,首先字节码文件被加载到内存后,先进行链接的验证这一步骤,验证通过后准备阶段,给a分配内存,因为变量a是static的,所以此时a等于int类型的默认初始值0,即a=0,然后到解析(后面在说),到初始化这一步骤时,才把a的真正的值10赋给a,此时

什么是类的加载,何时加载

当程序主动使用某个类时,如果该类还未被加载到内存中,系统会通过加载,连接,初始化三个步骤来对该类进行初始化,JVM将会连续完成这三个步骤,也把这三个步骤统称为类加载或类初始化。

类加载指的是将类Class文件读入内存,并为之创建一个java.lang.Class对象,也就是说程序使用任何类时,系统都会为之建立一个java.lang.Class对象

类是某一类对象的抽象,类是概念层次的东西,但类也是一种对象,每个类是一批具有相同特征的对象的抽象,而系统中所有类,它们实际上也是对象,都是java.lang.Class的实例

类的加载由类加载器完成,类加载器通常由JVM提供,这些类加载器也是所有程序运行的基础,JVM提供的这些类加载器通常被称为系统类加载器,开发者也可以通过继承ClassLoader基类来创建自己的类加载器

通过使用不同的类加载器,可以从不同来源加载类的二进制数据,通常有如下几种来源:1.从本地文件系统来加载Class文件,这是大部分实例程序的类加载方式

2从jar包中加载class文件,如JDBC编程时用到的数据库驱动类就是放在jar文件中,JVM可以从jar文件中直接加载该Class文件

3.通过网络加载class文件

4.把一个java源文件动态编译,并执行加载。

java类加载器有几种

java类加载器有四种,具体包括:

1、引导类加载器用来加载Java的核心库,引导类加载器用原生代码来实现。

2、扩展类加载器用来加载Java的扩展库,该类加载器在此目录里面查找并加载Java类。

3、系统类加载器根据Java应用的类路径来加载Java类。

4、除了系统提供的类加载器以外,开发人员可以通过继承的方式实现自己的类加载器,以满足一些特殊的需求。

.class 和 .java 区别

二者区别在于:java文件是源程序,class文件是编译后的代码。

关于源程序

未经编译的,按照一定的程序设计语言规范书写的,人类可读的文本文件。

源程序可以是以书籍或磁带或其他载体的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机可执行的程序。

将人类可读的程序代码文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,由各种编译器来完成。一般用高级语言编写的程序称为“源程序”。

java文件就是这样一个未经编译的源程序,一般是给程序员看的。

编译程序

编译程序(Compiler,compiling program)也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。

编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。

编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。

class文件就是被编译器编译过的java文件,通常是给计算机看的。

扩展资料:

JAVA工作原理:

使用文字编辑软件或集成开发环境在Java源文件中定义不同的类;

通过调用类中的方法来访问资源系统;

把源文件编译生成一种二进制中间码,存储在class文件中;

然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用。

参考资料:

源程序-百度百科

编译程序-百度百科

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

java多线程什么时候用?在用java开发程序中什么时候应用到线程java开发环境是什么?java开发需要哪些环境