A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 莫莫莫 中级黑马   /  2016-7-25 14:39  /  409 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Integer i1=1;
  Integer i2=1;
  i1++;
  System.out.println(i1+"...."+i2);
i1和i2指向的是常量池中的同一个内存空间,那么i1++之后,i2打印的值为什么还是1
还有基本数据类型的
int  i1=1;
int  i2=i;
关于他们在内存中的问题,有木有大神给讲一下,这点儿我这有点糊涂!?

2 个回复

倒序浏览
有木有人呢!!!!!!
回复 使用道具 举报
GCT 来自手机 中级黑马 2016-7-25 17:11:25
藤椅
Integer  i1=1,其实java是这样运行的Integer   i1=new  Integer(1),这里涉及自动装箱,然后再指向常量池,i1++,i1变为二,常量池中没有,所以在常量池创建一个2,i1与i2没有关系,它们只是指向同一个常量而已
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马