zoukankan      html  css  js  c++  java
  • 类加载器与methodinterceptor接口

    类加载器:

    JVM将类加载过程分为三个步骤:

    装载(Load):加载二进制文件

    链接(Link)进行了验证:验证文件准确性

    准备:将静态变量进行分配内存,初始化其默认值。

    解析:符号引用转换为直接引用

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

    1)Bootstrap ClassLoader

    负责加载$JAVA_HOME中jre/lib/rt.jar里所有的class,由C++实现,不是ClassLoader子类

    2)Extension ClassLoader

    负责加载java平台中扩展功能的一些jar包,包括$JAVA_HOME中jre/lib/*.jar或-Djava.ext.dirs指定目录下的jar包

    3)App ClassLoader

    负责记载classpath中指定的jar包及目录中class

    4)Custom ClassLoader

    属于应用程序根据自身需要自定义的ClassLoader,如tomcat、jboss都会根据j2ee规范自行实现ClassLoader

    加载过程中会先检查类是否被已加载,检查顺序是自底向上,从Custom ClassLoader到BootStrap ClassLoader逐层检查,只要某个classloader已加载就视为已加载此类,保证此类只所有ClassLoader加载一次。而加载的顺序是自顶向下,也就是由上层来逐层尝试加载此类。

    MethodInterceptor接口

    继承Interceptor

    intercept方法参数解释:(猜测)

    Object intercept(

    Object obj, 我推测实现原理还是依靠继承增强就是静态的那种。这个就是自己创建的那个类,每次都自己来一把。

    Method method, 目标对象方法

    Object[] objs,  目标对象方法的参数

    MethodProxy methodProxy 代理的方法

    )

  • 相关阅读:
    随机出题问题
    简读《构建之法》提问
    大二下第一次课后作业
    大道至简第七第八章读后感
    继承与接口动手动脑
    大道至简第六章读后感
    数组里的随机数问题
    大道至简第五章读后感
    输入法的用户界面
    搜索水王
  • 原文地址:https://www.cnblogs.com/core404/p/5875763.html
Copyright © 2011-2022 走看看