做简单网站需要学什么软件,商会网站建设,2023最新永久地域网名,physon可以做网站如何实现一个ioc容器 配置文件配置包扫码路径递归包扫描获取.class文件反射确定需要 交给IOC管理的类对需要注入的类进行依赖注入
配置文件中指定需要扫描的包路径
定义一些注解#xff0c;分别表示访问控制层#xff0c;业务服务层#xff0c;数据持久层#xff0c;依赖…
如何实现一个ioc容器 配置文件配置包扫码路径递归包扫描获取.class文件反射·确定需要 交给IOC管理的类对需要注入的类进行依赖注入
配置文件中指定需要扫描的包路径
定义一些注解分别表示访问控制层业务服务层数据持久层依赖注入注解获取配置文件注解从配置文件中获取需要扫描的包路径获取到当前路径下的文件信息以及文件夹信息我们将当前路径所有.class结尾的文件添加一个Set集合进行储存遍历set集合获取在类上有指定注解的类并将其交给ioc容器定义一个安全的map用来储存这些对象遍历这个ioc容器获取到每一个类的实例判断里面是否有依赖其他的类的实例然后进行递归注入
java类加载器
JDK自带有三种类加载器bootStrap classLoaderExtClassLoaderAppClassLoader BootStrapClassLoader是ExtClassLoader的父类加载器默认负责加载 %java_home%/lib/ext文件夹下的jar包和class类 继承ClassLoader实现自定义类加载器
JAVA中的异常体系 java中的所有异常都来自顶级父类Throwable Throwable下有两个子类Exception和Error Error是程序无法处理的错误,一旦出现这个错误则程序将被停止运行 Exception不会导致程序停止又分为两个部分RunTimeException运行异常和checkdException检查异常 RunTimeExption常常发生在程序运行过程中会导致程序当前线程执行失败 CheckedException常常发生在程序编译过程中会导致程序编译不通过
GC如何判断对象可以被回收
引用计数法每个对象有一个引用技术属性新增一个引用时计数器1引用释放时-1计数器为0的时候可以回收可信达分析法从GC Roots 开始向下搜索搜索所走过的路径称为引用链。当一个对象到GC Roots 没有任何引用链相链时则证明此对象是不可用的那么虚拟机就判断是可以回收对象引用计数法可能出行A 引用了BB又引用了A,这个时候就算他们都不在使用了但因为相互引用计数器1永远无法回收
GC Roots的对象有
虚拟机栈栈针中的本地变量表中引用的对象方法区中类静态属性引用的对象方法区中常量引用的对象本地方法栈中JNI即一般说的NAtive方法引用对象
可达性算法中的不可达对象 并不是立即死亡的对象拥有一次自我拯救的机会。对象被系统宣告死亡至少要经历两次标记过程第一个是经过可达性分析发现没有与GC Roots相连接的引用链第二次是在由虚拟机自动建立的Finalizer队列中判断是否需要执行finnalize方法