不是的啊!张老师的视频里不是说了吗,对于基本数据类型的整数,要将其自动装箱为Integer对象时,如果这个数字在一个字节之内,即 -128~127之间,则将其包装为一个Integer对象,并缓存起来,将其缓存到一个词里面,当下次再要将基本数据数据类型装载为Integer对象时,先查词字里有没有改数字,如果有取其数值直接使用,
m=n=128不在该词字内,所以在自动装箱时,转换为Integer对象时,不见得对象m,n的值就一定是128,因为Integer()方法接收的参数可以是String型,128可能是由某个字符串转化为Integer时产生的,也可能就是一个整型的的整数,在自动装箱时,不确定其类型,所以自动装箱后赋值给引用变量m,n,他们不见得就相等,所以返回false
而 a=b=127,在词字内,当将其自动装箱时,就会查词,用127这个整型数值直接代替,并赋值给引用变量a,b,所以a,b的值一定相等,返回true |