spring源码笔记
1.try catch finally
catch即便有throw也会先执行finally里边的代码,再抛出异常。
2.参数 
Object... args  可以不带参数,带一个,多个,数组
Object[] args   参数必须数组
3.泛型T,? Object
Object是所有类的父类,java所有类都是Object
?同Object差不多,但是?可以缩小范围,? extends String
T(泛型) 用于限定类型。
4.final使用   AbstractBeanFactory 中final修改方法参数
doGetBean(final String name, final Class<T> requiredType, final Object[] args, boolean typeCheckOnly)
避免方法中修改该参数的值或者引用
5.abstract使用    AbstractBeanDefinitionReader抽象类
抽象类使用接口的时候不用全部实现,可实现部分方法,用于子类自己实现。
44/171
6.IO
6.1设计模式
https://www.cnblogs.com/keyi/p/7171664.html
*******装饰模式
InputStream使用装饰模式分析,以输入流为例。
装饰模式样例:
https://www.cnblogs.com/zhangtianq/p/6091047.html
抽象构建角色:          Inputstream
具体构建实现角色:      StringBufferInputStream、FileInputStream,ByteArrayInputStream、PipedInputStream
抽象装饰角色:  FilterInputstream
具体装饰角色:  BufferedInputStream、DateInputStream....
理解:
抽象角色:负责定义装饰方法
具体构建实现角色:基于抽象角色完成基本的功能实现支持。
抽象装饰角色:拥有对抽象构建的引用,调用引用的装饰方法
具体装饰角色:添加需要添加的功能
!!代码上实际是具体对象拥有另一对象引用,另一对象拥有另另对象引用,层层串接,就像递归样。装饰多了,占用的空间相对就会多起来
eg:代码编写
*******适配器模式
单向和双向适配,适配器持有单个或者双方引用。
适配器:其实就是一个类,调用具体的方法,从而实现适配。
目标类,适配器,适配者
适配器样例:https://www.cnblogs.com/songyaqi/p/4805820.html
很常见!!!!可以理解为封装
                    
                
                
            
        
浙公网安备 33010602011771号