NIIT的一道Java面试题。。为什么结果是0呢??

publicclassA6{publicstaticvoidadd3(Integeri){intval=i.intValue();val+=3;i=newInteger(... public class A6 {
public static void add3(Integer i){
int val=i.intValue();
val+=3;
i=new Integer(val);
}
public static void main(String[] args) {
Integer i=new Integer(0);
add3(i);
System.out.println(i.intValue());
}
}
展开
 我来答
神机天下
2013-04-09 · TA获得超过175个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:181万
展开全部
这个是在java中 常见的问题,主要是传值还是地址.
最简单的就是自己写的类你就当他是传引用.不是自己写的就当成传值..这样基本上不会出错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小云淡淡
2013-04-09
知道答主
回答量:43
采纳率:0%
帮助的人:21.5万
展开全部
参数传入的问题,如果传入的是变量的引用也就是地址则i的值会发生变化,不然i的值是不会发生变化的。
追问
纠正,java中只有值传递,没有所谓的引用传递!!!
追答
好吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
都来跪拜大多特6L
2013-04-09 · TA获得超过148个赞
知道小有建树答主
回答量:424
采纳率:0%
帮助的人:111万
展开全部
因为add3没有返回值,即没有给i重新赋值,所以i还是0
更多追问追答
追问
那系统在执行add()的“i=new Integer(val);”的时候   到底做了什么呢???
追答
add3方法中的i跟main中的i是两个变量,add3中new就是新创建了一个新的对象。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
time遥远的自己
2013-04-09
知道答主
回答量:13
采纳率:0%
帮助的人:4.3万
展开全部
地址引用问题,主方法中新建的出i对象指向地址在调用方法后数值不变。
追问
add3()中  i=new Integer(val);   之后i对象指向的地址  应该是一个新的对象啊   能不能详细说明一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
niceslj
2013-04-09 · TA获得超过184个赞
知道答主
回答量:95
采纳率:0%
帮助的人:55.3万
展开全部
基本类型的包装类虽然是引用传递,但是值不可改变
追问
不是,java中只有值传递,没有所谓的引用传递!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式