Integer的valueOf方法缓存导致的问题

java中引用类型"=="比较的是地址值

equals()方法比较的是引用类型存储的值

Integer的valueOf方法缓存导致的问题_第1张图片
案例存在问题

我们发现127和128比较时出现了不同的问题,他们比较的都是地址值。为什么地址值会一样呢?因为在valueOf方法内部实现了缓存机制,这导致byte之内的Integer的对象都进行了缓存。


Integer的valueOf方法缓存导致的问题_第2张图片
源码缓存

你可能感兴趣的:(Integer的valueOf方法缓存导致的问题)