CGLIB动态代理和jdk代理一样,使用反射完成代理,不同的是他可以直接代理类(jdk动态代理不行,他必须目标业务类必须实现接口),CGLIB动态代理底层使用字节码技术,CGLIB动态代理不能对 final类进行继承。
字符流:数据流中最小的数据单元是字符, Java中的字符是Unicode编码,一个字符占用两个字节。字符流的由来:Java中字符是采用Unicode标准,一个字符是16位,即一个字符使用两个字节来表示。因为数据编码的不同,而有了对字符进行高效操作的流对象。
主题定义观察者数组,并实现增、删及通知操作。定义具体的,他继承继承Subject类,在这里实现具体业务,在具体项目中,该类会有很多。运行测试
实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。在java虚拟机中,只有实现了这个接口的类才可以被拷贝,否则在运行时会抛出CloneNotSupportedException异常。
一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式拷贝多个对象供调用者使用,即保护性拷贝。我们Spring框架中的多例就是使用原型。