#一、objc对象的isa的指针指向什么?有什么作用?指向他的类对象,从而可以找到对象上的方法详解:下图很好的描述了对象,类,元类之间的关系:图中实线是super_class指针,虚线是isa指针。1. Root class (class)其实就是NSObject,NSObject 是没有超类的,所以Root class(class)的superclass指向nil。2. 每个Class 都有一个isa 指针指向唯一的Meta class3. Root class(meta)的superclass 指向Root class(class),也就是NSObject,形成一个回路。4. 每个Meta
#一、objc对象的isa的指针指向什么?有什么作用?指向他的类对象,从而可以找到对象上的方法详解:下图很好的描述了对象,类,元类之间的关系:图中实线是super_class指针,虚线是isa指针。1. Root class (class)其实就是NSObject,NSObject 是没有超类的,所以Root class(class)的superclass指向nil。2. 每个Class 都有一个isa 指针指向唯一的Meta class3. Root class(meta)的superclass 指向Root class(class),也就是NSObject,形成一个回路。4. 每个Meta
一、什么是CGLIB?CGLIB是一个功能强大,高性能的代码生成包。它为没有实现接口的类提供代理,为JDK的动态代理提供了很好的补充。通常可以使用Java的动态代理创建代理,但当要代理的类没有实现接口或者为了更好的性能,CGLIB是一个好的选择。CGLIB作为一个开源项目,其代码托管在github,地址为:https://github.com/cglib/cglib二、CGLIB原理CGLIB原理:动态生成一个要代理类的子类,子类重写要代理的类的所有不是final的方法。在子类中采用方法拦截的技术拦截所有父类方法的调用,顺势织入横切逻辑。它比使用java反射的JDK动态代理要快。CGLIB底层
一、什么是CGLIB?CGLIB是一个功能强大,高性能的代码生成包。它为没有实现接口的类提供代理,为JDK的动态代理提供了很好的补充。通常可以使用Java的动态代理创建代理,但当要代理的类没有实现接口或者为了更好的性能,CGLIB是一个好的选择。CGLIB作为一个开源项目,其代码托管在github,地址为:https://github.com/cglib/cglib二、CGLIB原理CGLIB原理:动态生成一个要代理类的子类,子类重写要代理的类的所有不是final的方法。在子类中采用方法拦截的技术拦截所有父类方法的调用,顺势织入横切逻辑。它比使用java反射的JDK动态代理要快。CGLIB底层