Java自定义的类加载器,java自定义加载,在java中类加载器有以

在java中类加载器有以下几种java虚拟机自带的加载器 1)根类加载器(Bootstrap,c++实现)2)扩展类加载器(Extension,java实现) 3) 系统类加载器(System,java实现)用户自定义的类加载器 java.lang.ClassLoader的子类 用户可以定制类的加载方式

Java自定义类加载器package classloader;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;/** * * 一、ClassLoader加载类的顺序 * 1.调用 findLoadedClass(String) 来检查是否已经加载类。 * 2.在父类加载器上调用 loadClass 方法。如果父类加载器为 null,则使用虚拟机的内置类加载器。 * 3.调用 findClass(String) 方法查找类。 * 二、实现自己的类加载器 * 1.获取类的class文件的字节数组 * 2.将字节数组转换为Class类的实例 * * * @author lei 2011-9-1 */public class ClassLoaderTest { public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException { //新建一个类加载器 MyClassLoader cl = new MyClassLoader("myClassLoader"); //加载类,得到Class对象 Class> clazz = cl.loadClass("classloader.Animal"); //得到类的实例 Animal animal=(Animal) clazz.newInstance(); animal.say(); }}class Animal{ public void say(){ System.out.println("hello world!"); }}class MyClassLoader extends ClassLoader { //类加载器的名称 private String name; //类存放的路径 private String path = "E:\\workspace\\Algorithm\\src"; MyClassLoader(String name) { this.name = name; } MyClassLoader(ClassLoader parent, String name) { super(parent); this.name = name; } /** * 重写findClass方法 */ @Override public Class> findClass(String name) { byte[] data = loadClassData(name); return this.defineClass(name, data, 0, data.length); } public byte[] loadClassData(String name) { try { name = name.replace(".", "//"); FileInputStream is = new FileInputStream(new File(path + name + ".class")); ByteArrayOutputStream baos = new ByteArrayOutputStream(); int b = 0; while ((b = is.read()) != -1) { baos.write(b); } return baos.toByteArray(); } catch (Exception e) { e.printStackTrace(); } return null; }}

java中的类加载器有,Java自定义的类加载器,java自定义加载,在java中类加载器有以...相关推荐

  1. 【滴水逆向P77】加载进程(PE查看器)应用程序源码解析

    在上一篇文章中讲解了通用控件,做了一个基本的加载进程(PE查看器)的应用程序项目,Win32通用控件,加载进程(PE查看器)项目初步,大家如果有不懂的可以去看看,由于不是很了解Win32编程,所以有很 ...

  2. ccs加载out文件_类加载流程、类加载机制及自定义类加载器详解

    原文:juejin.im/post/5cffa528e51d4556da53d091 一.引言 当程序使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载.链接.初始化三个步骤对该类进行类加载 ...

  3. java动态编译类文件并加载到内存中

    如果你想在动态编译并加载了class后,能够用hibernate的数据访问接口以面向对象的方式来操作该class类,请参考这篇博文-http://www.cnblogs.com/anai/p/4270 ...

  4. Java类的加载及父类子类加载顺序

    点击 Mr.绵羊的知识星球 解锁更多优质文章. 目录 一.类的加载 1. 类加载 2. 类加载器 二.父类和子类加载顺序 1. 案例(代码) 一.类的加载 1. 类加载 当程序要使用某些类时,如果该类 ...

  5. java 将数据加载到内存中_java 将数据加载到内存中的操作

    将数据加载到内存中 1.建立InitListener.java package app.util; import java.util.HashMap; import java.util.Map; im ...

  6. java代码加载_java类中代码加载顺序

    package org.senssic; /** * 一般顺序:静态块-->静态变量-->成员变量-->构造方法-->静态方法(或非静态方法,需要调用) * 1.静态代码块(只 ...

  7. java 运行 加载jar,java运行时加载额外的 jar 包或 class

    首先讲下java类加载的顺序 每个类加载器有自己的名字空间,对于同一个类加载器实例来说,名字相同的类只能存在一个,并且仅加载一次.不管该类有没有变化,下次再需要加载时,它只是从自己的缓存中直接返回已经 ...

  8. android 在自定义的listview(有刷新加载项)列表中,数据过少时不能铺满整个屏幕时,header和footer同时显示问题...

    android  在自定义的listview(有刷新加载项)列表中,数据过少时,当刷新时,加载项也会显示,这是很头疼的一个问题,查阅了一些资料,总结了一个比较不错的方法: 原来代码: 1 @Overr ...

  9. windows怎样运行wmi服务器,文件服务器资源管理器无法加载 Windows Server 中的 WMI 对象...

    文件服务器资源管理器无法加载 Windows Server 中的 WMI 对象 05/12/2021 本文内容 本文可帮助修复在 Windows Server 中启动文件服务器资源管理器时发生的错误. ...

最新文章

  1. 快速记忆python函数-【速学速记】Python 高阶函数
  2. 6. Qt 信号与信号槽(11)Qt::ConnectionType类型
  3. PowerShell在Exchange2010下快速创建动态通讯组
  4. vue ui框架_「webAPP」记录几款比较好用的vue 移动端的ui框架
  5. 数据库OceanBase创始人阳振坤:通关TPC-C到底有多难?
  6. STM32/M3/M0关于开关总中断的问题
  7. Android中各个权限详解
  8. pip 安装GDAL
  9. 集群启动/停止方式总结
  10. Spring之后处理器
  11. Python PDF转image方法小结
  12. python调用virustota接口api实现上传文件返回查毒结果
  13. php解决商品超卖,商品超卖问题,你用PHP如何解决?
  14. 面试题之心理测试题及答案
  15. google身份验证器
  16. python中文分句_Python 中文分句
  17. contains用法
  18. NLTK常用操作和语料库
  19. 腾讯的核心竞争力是什么
  20. 文件夹总是在新窗口打开

热门文章

  1. Linux什么是文件IO,linux中文件IO
  2. 2018年超大规模数据中心总数达到430个
  3. 成功解决无法连接到YLMF-201404228CG,在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败
  4. Python之pandas:对pandas中dataframe数据中的索引输出、修改、重命名等详细攻略
  5. Python之pyecharts:利用pyecharts绘制2020年11月16日微博话题热度排行榜实时变化
  6. DL之CNN:卷积神经网络算法简介之原理简介——CNN网络的3D可视化(LeNet-5为例可视化)
  7. Ubuntu之Pycharm:Ubuntu系统内Pycharm安装的图文教程
  8. 成功解决:利用编程向数据库插入一条记录,而从数据库中查不到该条记录
  9. uc/os-II(source)各种文件含义集锦
  10. 『转载』在vs2008(2005)winform中,打开office文档