- 关于过滤器的回调机制:
因为Java中有过滤器过滤器的机制是函数回调,索引在此介绍一下函数的回调。
Eg:
class A{}
A a=new A();
a.numBuild();//此方法用于生成两个数,比如此处生成了1和2;
a.sumList();//此方法用于显示两个数的和;
class B{}
B b=new B();
b.sum();//此方法用于计算两个数的和;
此时,比如你写了两个类A和B,并且各生成一个对应的实例a 和b ,在a 中有一个方法numBuild( 此方法只负责生成两个随机数)要调用b中的一个方法sum(此方法对两个数进行求各) 来进行求和,sum求得结果后要调用a的另一个方法sumList(此方法用于显示求得的结果),这时sumList就叫作回调函数,(反回来调用一下的意思)。
为什么要这么麻烦呢,如果sum直接返回结果不好吗,试想如果sum执行时间较长,那么numBuild就会一直等结果而导致numBuild不往下执行了,此时如果用回调这个功能实现,由于 回调函数一般是由系统异步调用的,方法numBuild调用sum后就不用等而直接往下执行,比如可以再生成两随机数给sum,sum会依次得到结果后通过回调机制来调用sumList显示出来,其实就是为实现生成随机数和计算随机数的异步执行。好象numbuild和sum是两个独立执行的线程,提高程序效率。
这是之前在百度知道里看到一个解释,例子可能举得不好,但觉得挺好理解,现总结出来与大家共享。
- 关于拦截器的反射机制:
反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。