12
返回列表 发新帖
楼主: asangel

[SCJP] 有点不理解,请帮忙看看

[复制链接]
论坛徽章:
5
八级虎吧徽章
日期:2008-12-08 16:10:57NBA季后赛纪念徽章
日期:2009-06-16 11:28:17
11#
 楼主| 发表于 2007-7-25 23:04 | 只看该作者
谢谢楼上的,大概理解了

使用道具 举报

回复
论坛徽章:
0
12#
发表于 2007-7-27 18:33 | 只看该作者
Integer和int怎么可能一样呢??
我的理解是y中的内容是Integer对象的引用而已!对一个y引用++的话对x是没有关系的
输出当然是5了

使用道具 举报

回复
论坛徽章:
0
13#
发表于 2007-7-27 20:23 | 只看该作者
顶 #9

使用道具 举报

回复
论坛徽章:
37
2008新春纪念徽章
日期:2008-02-13 12:43:032014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11林肯
日期:2014-02-19 11:17:442014年新春福章
日期:2014-04-11 20:15:402014年新春福章
日期:2014-05-12 21:19:27itpub13周年纪念徽章
日期:2014-10-09 09:24:02马上有对象
日期:2014-12-28 11:38:19马上有对象
日期:2015-01-24 23:01:06沸羊羊
日期:2015-03-03 19:23:49
14#
发表于 2007-8-3 19:09 | 只看该作者
y++是个表达式,计算的结果在一个临时变量中呢,不要忘了,++在右边,先赋值 后加1,所以y还是指向初值5 你把y++付给一个新变量,然后输出那个新变量,就是6了

使用道具 举报

回复
论坛徽章:
0
15#
发表于 2007-8-23 06:53 | 只看该作者

说一下

你的X是把地址复给了Y。所以Y的值增加。X也会增加,随意打印出来会是6;

使用道具 举报

回复
论坛徽章:
0
16#
发表于 2007-9-3 20:46 | 只看该作者
那是因为y++的过程中,实际上建立了另一个Integer因此,y已引用了另一个Integer,而不是与x引用同一个Integer,即外覆类是不可变的

使用道具 举报

回复
论坛徽章:
0
17#
发表于 2007-9-28 18:54 | 只看该作者

explain

Integer x=new Integer(5);
x is a instance of class Integer.
Integer y;
y is another instance of class Integer.

when y=x; you assign x to y . y's value is x or y has a handle to reference x. now x is still a instance of Integer and has value 5.
you used System.out.print(x); output still 5.

使用道具 举报

回复
论坛徽章:
1
ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26
18#
发表于 2007-9-29 09:20 | 只看该作者
对于你给的这个题目,我有一些想法:
举例来说:
String a = "abc";
String b = a;
b += "d";
System.out.println(a);
System.out.println(b);
这里的效果和你给的题目是一样的。
因此,我有理由相信,Integer和String在本质上有共通的地方,它们应该都是immutable的。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表