Integer
1.两种创建方式
| 自动装箱 |
|---|
1 | <th><p>Integer a = 100;--->编译器会自动转为<br /> |
基于享元模式
Integer中有一个静态内部类IntegerCache
缓存了[-128,127]的数
| 调用 Integer.valueOf(a) |
|---|
| 并且判断是否有缓存, |
| 有则走,无则放弃 |
1 | <td>Integer b = new Integer(100);</td> |
2.源码分析
在InputStream类中,
有三个read()函数
其中一个是无参的abstract方法,也就是说子类必须重写
然后一个双参数,一个三参数,他们内部最终仍旧调用无参的抽象方法,
也就是将控制权交给了子类, 这是模板方法模式的思想—>反转控制