【黑马程序员】张孝祥Java高新技术_类加载器、代理
2011-09-23 00:16
323 查看
---------------------- android培训、java培训、期待与您交流! ----------------------
类加载器
1.Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader
2.类加载器也是java类,因为其他是java类的类加载器本身也要被类加载器加载,显然必须有一个类加载器不是java类,这正是BootStrap。
3.java虚拟机中的所有类装载器采用具有父子挂席的树形结构进行组织,在实例化每个类装载器对象时,需要为其制定一个父级类装载器对象或者默认采用系统类装载器为其父级类加载。
4.每个类加载器加载类时,有先委托给其上级类加载器。(委托机制)
5.有包名的类不能调用无包名的类。
代理
1要为已存在的多个具有相同接口的目标类的各个方法增加一些系统功能,例如,异常处理,日志,计算方法的运行时间,事务管理等等
代理类与目标类有相同接口,它的每个方法调用目标类的相同方法,并在调用方法时加上系统功能的代码,
2.AOP面向方面的编程:交叉业务的编程问题。AOP的目标就是要使交叉业务模块化。
3.jvm可以在运行期动态生成出类的字节码,这种动态生成的类往往被用作代理类,即动态代理类。
4.jvm生成的动态类必须实现一个或多个接口,所以,jvm生成的动态类只能用作具有相同接口的目标的代理。
5.CGLIB库可以动态生成一个类的子类,一个类的子类也可以用作该类的代理,所以,如果要为一个没有实现接口的类生成动态代理类,那么可以使用CGLIB库。
6.代理类的各个方法中通常除了要调用目标的相应方法和对外返回目标返回的结果外,还可以在代理方法中的如下四个位置加上系统功能代码:
(1)在调用目标方法之前
(2)在调用目标方法之后
(3)在调用目标方法前后
(4)在处理目标方法异常的catch块中
7.让jvm创建动态类及其实例对象,需要给它提供哪些信息?
三个方面
(1) 生成的类中有哪些方法,通过让其实现哪些接口的方式进行告知;
(2) 产生的类字节码必须有个一个关联的类加载器对象;
(3) 生成的类中的方法的代码是怎样的,也得由我们提供。把我们的代码写在一个约定好了接口对象的方法中,把对象传给它,它调用我的方法,即相当于插入了我的代码。
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima
类加载器
1.Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader
2.类加载器也是java类,因为其他是java类的类加载器本身也要被类加载器加载,显然必须有一个类加载器不是java类,这正是BootStrap。
3.java虚拟机中的所有类装载器采用具有父子挂席的树形结构进行组织,在实例化每个类装载器对象时,需要为其制定一个父级类装载器对象或者默认采用系统类装载器为其父级类加载。
4.每个类加载器加载类时,有先委托给其上级类加载器。(委托机制)
5.有包名的类不能调用无包名的类。
代理
1要为已存在的多个具有相同接口的目标类的各个方法增加一些系统功能,例如,异常处理,日志,计算方法的运行时间,事务管理等等
代理类与目标类有相同接口,它的每个方法调用目标类的相同方法,并在调用方法时加上系统功能的代码,
2.AOP面向方面的编程:交叉业务的编程问题。AOP的目标就是要使交叉业务模块化。
3.jvm可以在运行期动态生成出类的字节码,这种动态生成的类往往被用作代理类,即动态代理类。
4.jvm生成的动态类必须实现一个或多个接口,所以,jvm生成的动态类只能用作具有相同接口的目标的代理。
5.CGLIB库可以动态生成一个类的子类,一个类的子类也可以用作该类的代理,所以,如果要为一个没有实现接口的类生成动态代理类,那么可以使用CGLIB库。
6.代理类的各个方法中通常除了要调用目标的相应方法和对外返回目标返回的结果外,还可以在代理方法中的如下四个位置加上系统功能代码:
(1)在调用目标方法之前
(2)在调用目标方法之后
(3)在调用目标方法前后
(4)在处理目标方法异常的catch块中
7.让jvm创建动态类及其实例对象,需要给它提供哪些信息?
三个方面
(1) 生成的类中有哪些方法,通过让其实现哪些接口的方式进行告知;
(2) 产生的类字节码必须有个一个关联的类加载器对象;
(3) 生成的类中的方法的代码是怎样的,也得由我们提供。把我们的代码写在一个约定好了接口对象的方法中,把对象传给它,它调用我的方法,即相当于插入了我的代码。
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima
相关文章推荐
- 黑马程序员_Java高新技术_动态代理技术的深入理解
- 黑马程序员 java高新技术<四>--类加载器、动态代理技术的深入讲解与应用
- 黑马程序员-----JAVA 类加载器和代理
- 黑马程序员——【Java高新技术】——代理
- 黑马程序员—【Java高新技术】之内省、注解、类加载器
- 黑马程序员_Java高新技术(3)动态代理和AOP技术
- 黑马程序员_Java高新技术(内省、注解、泛型、类加载器、代理)
- 黑马程序员_高新技术四(Java动态代理、AOP简单框架)
- [黑马程序员] Java基础加强(5-7天)2010年Java高新技术_张孝祥
- 黑马程序员_java高新技术—类加载器&&动态代理
- 黑马程序员-JAVA 高新技术(代理)
- 黑马程序员_java高新技术—类加载器&&动态代理
- 黑马程序员——Java高新技术——反射(续)、成员方法的反射、数组的反射、Hashcode方法分析、类加载器等
- 【黑马程序员】张孝祥Java高新技术_静态导入、可变参数、增强for循环
- 黑马程序员_Java高新技术——类加载器和动态代理(第9篇)
- 黑马程序员_张孝祥_Java基础加强_代理
- 黑马程序员——java高新技术-jdk1.5新特性,注解,类加载器,代理
- 黑马程序员-Java高新技术之类加载器和代理
- 黑马程序员------张孝祥Java高新技术-反射
- 【黑马程序员】张孝祥Java高新技术_内省、注解、泛型