java吧 关注:1,299,505贴子:12,841,452
  • 7回复贴,共1

这个输出为嘛事是lase

只看楼主收藏回复

import java.util.ArrayList;
public class PersonTest {
public static void main(String[] args) {
Integer a=10000;
Integer b=10000;
System.out.println((a==b));
}
}


IP属地:上海1楼2015-04-22 22:03回复
    你要先拆箱再用双等号比较。a b是两个内存地址。


    IP属地:上海来自Android青春福利版2楼2015-04-22 22:08
    收起回复
      2026-03-15 18:22:32
      广告
      不感兴趣
      开通SVIP免广告
      自顶


      IP属地:上海3楼2015-04-22 22:08
      回复
        因为所以,科学道理


        4楼2015-04-22 22:09
        回复
          因为只缓存-128到127中的Integer


          IP属地:四川来自Android客户端5楼2015-04-22 22:11
          收起回复
            INTEGER对象有一个常量池,创建-128到127之间的数值时,会引用常量池中的数值,共享一个内存地址。超过这个范围以后,就跟普通对象创建一样,会新建一个内存地址。基本类型包装类里只有INTEGER有这个常量池。


            IP属地:上海来自Android青春福利版6楼2015-04-22 22:16
            回复