Integer

1.两种创建方式

```java ```java
自动装箱

Integer a = 100;--->编译器会自动转为
Integer a = Integer.valueOf(100);

```

基于享元模式

Integer中有一个静态内部类IntegerCache
缓存了[-128,127]的数

调用 Integer.valueOf(a)
并且判断是否有缓存,
有则走,无则放弃
显式newInteger b = new Integer(100); ```
调用构造函数,直接创建

2.源码分析 在InputStream类中, 有三个read()函数 其中一个是无参的abstract方法,也就是说子类必须重写 然后一个双参数,一个三参数,他们内部最终仍旧调用无参的抽象方法, 也就是将控制权交给了子类, 这是模板方法模式的思想--->反转控制 e9d5df465833760f781f7d180468cf7eee1780df