【Java八股】Integer a1=100,Integer a2=100,a1==a2是true还是false?

a1==a2的执行结果是true,原因是Integer内部用到了一个享元模式的设计,也就是对于-128~127之间的数字做了一个缓存,使用Integer a1=100这个方式进行复制的时候,java默认会通过valueOf这个方法对100这个数字进行一个装箱操作,从而触发了一个缓存机制,使得a1和a2指向了同一个内存地址。

posted @ 2022-10-24 16:30  求道之愚者  阅读(64)  评论(0)    收藏  举报