对于Integer类型数据==和equals()问题

来源:互联网 发布:python 加减 编辑:程序博客网 时间:2024/05/17 06:03
对于自动装箱和自动拆箱都不用解释了吧,看老生常谈,但是上图出现的这个问题是一个很隐秘的知识点,这就归结于java对于Integer与int的自动装箱与拆箱的设计,是一种模式:叫享元模式(flyweight) 为了加大对简单数字的重利用,java定义:在自动装箱时对于值从–128到127之间的值,它们被装箱为Integer对象后,会存在内存中被重用,始终只存在一个对象 。但是超出-128到127之间的值,被装箱后的Integer对象并不会被重用,即相当于每次装箱时都新建一个 Integer对象(还是需要用equals来比较,已经重写)

0 0