< 返回新闻资讯列表
java类加载器有哪几种
发布时间:2023-07-12 07:51:50
甚么是Java类加载器
在Java中,一个类其实不是像C++一样通过加上include来援用的,而是通过“类加载器”来完成的。Java中的类加载器是将编译好的字节码装载到内存中并对其解析生成运行时的数据结构的模块。
Java类加载器的分类
Java类加载器可以分为以下几类:
- 启动类加载器:也称为系统类加载器,它是JVM内置的类加载器,负责加载JVM核心类库,是由C++实现的。没法直接获得该类加载器对象。
- 扩大类加载器:它负责加载JRE扩大目录$JAVAHOME/lib/ext下的类库,可以用Java代码来访问并获得该类加载器对象。
- 利用程序类加载器:它是在JVM启动时由MainClass指定的类加载器,在程序运行时,我们也能够通过该类加载器来加载自己所编写的类。可以用Java代码来访问并获得该类加载器对象。
- 自定义类加载器:是由Java编写开发的类加载器,通过继承或拜托的方式来实现特定的类加载需求。
Java类加载器的工作进程
Java类加载器的工作进程分为以下几步骤:
- 装载:类加载器根据指定的类名查找相应的二进制字节码文件,找到后将其读入内存,并将其转换成方法区内的运行时数据结构。
- 链接:将在装载阶段中得到的类的二进制数据合并到JVM的运行状态当中,并生成一个对应的运行时Java对象。
- 初始化:在Java虚拟机对上述步骤完成的类进行首次调用之前,需要对该类进行初始化。该步骤包括履行类变量的赋值,履行静态代码块的操作等。
Java类加载器的优化策略
Java类加载器的优化策略可以从以下因素有哪些入手:
- 提高类加载的并发性:如果利用程序的类加载取决于其他的类,那末只有顺序依赖才能保证一个类在另外一个类之前被加载。如果类之间是一组无顺序的依赖(例如通过反射来解决,或是动态地将两个类打包在一起),就需要某种方式来避免产生死锁的情况。
- 以缓存方式管理类以加快常常使用类的装载速度:使用缓存是提高Java利用程序性能的一种有效方法。类加载可以从缓存中获得,因此以后的类加载进程没必要重新读取或解紧缩已加载的类文件,从而提高了加载速度。
- 获得更好的性能:改进类加载器实现方案,例如使用双亲委派模型等来简化加载进程,有助于提高类加载器的性能。
桂&哥&网&络www.guIgEge.cn