类加载器 代理

    技术2022-05-18  12

    classLoader

    BootStrap-->rt.jar|——ExtClassLoader --> ext/*.jar     |——AppClassLoader --> CLASSPATH类加载器的树状结构

    类加载器的委托机制加载器传递到父类一直到BootStrap然后从上向下找是否已经加载避免重复加载当直到发起类也没有找到时 throws ClassNotFoundException

    首先使用当前线程的类加载器如果引用了第二个类 这就会用第一个类的加载器

    设计类加载器

    模板模式 父类完成方法 子类设计是只需要修改自己不同的部分 父类将不能确定必须完成的方法定义为抽象的(abstract)方法

    类加载器需要覆盖loadClass与findClass方法加密方法,将class文件计算修改后输出

    代理功能面向方面的编程将程序中相同的部分模块化

    JVM java虚拟机自动动态生成类  利用的多态动态生成的类必须实现一个或多个接口

    CGLIB库可以动态生成一个类的子类 如果一个类没有接口则使用CGLIB库

    代理的作用是可以对目标方法增加代码 可以增加在方法前 后 CATCH中

    StringBuilder 不考虑安全性 每个线程调用都会有自己的StringBuilder

    注意匿名类的使用,框架的使用,减少硬编码

    利用重构抽取方法 方法执行前后的增加方法 将参数传递给接口,在接口中实现需要增加的内容,advice


    最新回复(0)