java基础加强(类加载器、代理,不是很懂)
2013-08-20 12:07
190 查看
----------------------
ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
1. 类加载器的委托机制:
每一个类加载器加载类时,先委托其上一级类加载器进行加载,直到最顶级类加载器,然后再逐级往回退,当所有祖宗类加载器没有加载到类,回到发起者类加载器,还加载不了,则抛ClassNotFoundException。
这种先由上级进行加载的方式,保证了内存中只有一个字节码,如果各个类加载器各行其事,必然导致内存里的字节码混乱,这种统一管理的方式应该学习。
注:基于类加载器的委托机制,自己写的java.lang.System类一般是不能被被加载的,但是可以通过自定义类加载器劈开委托机制进行加载。
2.代理
这部分其实真的不是很懂,四五遍下来,代码都能顺利写出来,但是知其然不知其所以然的感觉很是不爽,但是时间有限,不理解的记录下来慢慢领悟吧。虽然对这里不是很理解,但是对很多东西总算有一个模糊的概念了,相信在以后的学习中会很顺利的。
2.1 如ArrayList作为target,得到的代理类不能直接强转为ArrayList,但是可以强转为List和Collection,这就限制了ArrayList的特有方法使用。这一点感觉不如使用CGLIB库好,因为CGLIB库可以动态生成一个类的子类,自然就得到了ArrayList的所有方法。
2.2 在AopFramework的部分,为什么会有一个ProxcyBeanFactory的类,直接通过配置文件反射得到target和advice岂不是更直接,还绕一大圈找代理?不过既然类似spring,而spring还是三大框架中的一个,必然有其优势吧。
2.3 调用调用代理对象的从Object类继承的hashCode, equals, 或toString这几个方法时,代理对象将调用请求转发给InvocationHandler对象,对于其他方法,则不转发调用请求。
这一点想了好一会才大概知道是什么意思,特别标记,加以注意吧。
2.4 张老师的错误教学法(老师自己取的名字)不错啊,好多地方没出错,自己听的时候感觉也还蛮简单,就直接过了,但是十天半月后自己突然来敲这部分代码居然好多地方不会。但是老师出错的地方自己会额外注意一点,这样印象又深一点。看来真的只有出错才能进步啊。
----------------------
ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
1. 类加载器的委托机制:
每一个类加载器加载类时,先委托其上一级类加载器进行加载,直到最顶级类加载器,然后再逐级往回退,当所有祖宗类加载器没有加载到类,回到发起者类加载器,还加载不了,则抛ClassNotFoundException。
这种先由上级进行加载的方式,保证了内存中只有一个字节码,如果各个类加载器各行其事,必然导致内存里的字节码混乱,这种统一管理的方式应该学习。
注:基于类加载器的委托机制,自己写的java.lang.System类一般是不能被被加载的,但是可以通过自定义类加载器劈开委托机制进行加载。
2.代理
这部分其实真的不是很懂,四五遍下来,代码都能顺利写出来,但是知其然不知其所以然的感觉很是不爽,但是时间有限,不理解的记录下来慢慢领悟吧。虽然对这里不是很理解,但是对很多东西总算有一个模糊的概念了,相信在以后的学习中会很顺利的。
2.1 如ArrayList作为target,得到的代理类不能直接强转为ArrayList,但是可以强转为List和Collection,这就限制了ArrayList的特有方法使用。这一点感觉不如使用CGLIB库好,因为CGLIB库可以动态生成一个类的子类,自然就得到了ArrayList的所有方法。
2.2 在AopFramework的部分,为什么会有一个ProxcyBeanFactory的类,直接通过配置文件反射得到target和advice岂不是更直接,还绕一大圈找代理?不过既然类似spring,而spring还是三大框架中的一个,必然有其优势吧。
2.3 调用调用代理对象的从Object类继承的hashCode, equals, 或toString这几个方法时,代理对象将调用请求转发给InvocationHandler对象,对于其他方法,则不转发调用请求。
这一点想了好一会才大概知道是什么意思,特别标记,加以注意吧。
2.4 张老师的错误教学法(老师自己取的名字)不错啊,好多地方没出错,自己听的时候感觉也还蛮简单,就直接过了,但是十天半月后自己突然来敲这部分代码居然好多地方不会。但是老师出错的地方自己会额外注意一点,这样印象又深一点。看来真的只有出错才能进步啊。
----------------------
ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
相关文章推荐
- Java基础---Java---基础加强---类加载器、委托机制、AOP、 动态代理技术、让动态生成的类成为目标类的代理、实现Spring可配置的AOP框架
- Java基础---Java---基础加强---类加载器、委托机制、AOP、 动态代理技术、让动态生成的类成为目标类的代理、实现Spring可配置的AOP框架
- Java基础加强_Eclipse、枚举、反射、注解、泛型、类加载器、动态代理
- 黑马程序员-java基础加强_代理和类加载器
- java基础加强(反射、内省、BeanUtils工具类、类加载器、动态代理)
- 黑马程序员_Java基础加强(下)_类加载器,代理_28
- 黑马程序员--Java基础加强--08内省、类加载器、动态代理
- 黑马程序员-->Java基础加强-->动态代理
- Java基础加强总结——代理(Proxy)
- Java基础加强二注解、泛型、类加载器、代理类
- Java基础(反射,类加载,动态代理)
- 黑马程序员 24 Java基础加强-06-内加载器篇
- 黑马程序员_java基础加强_静态导入_反射_枚举_注解_内省_泛型_代理
- JAVA--基础加强_动态代理
- 黑马程序员_JAVA基础加强——JavaBean内省和类加载器
- 23-java基础加强(反射、泛型、注解、动态代理)
- 黑马程序员-java基础加强-代理
- Java基础加强总结(5)(代理)
- Java基础加强总结(三)——代理(Proxy)
- 基础加强 类加载器 代理