java中关于static一道小题目,帮忙解释下

运行以下程序段,变量t2的值是(D)publicstaticvoidexchange(intx,inty){inttemp=x;X=y;Y=temp;}publicsta... 运行以下程序段,变量t2的值是(D )
public static void exchange(int x,int y)
{ int temp=x;
X=y;
Y=temp;
}
public static void main(String args[])
{ int t1=2;
int t2=3;
exchange(t1,t2);
}
A. 5 B. 4 C. 2 D. 3
我想问下为什么t1和t2没有交换?
按值传递时,实参本身的值不会随形参的改变而改变
按引用传递时,实参本身的值会随形参的改变而改变

那怎么判断是按值传递还是引用传递?基本型是不是就是字节型(bute);短整型(short);整型(int);长整型(long);字符型(char);浮点数(float);双精度(double);布尔型(boolean)。那哪些才是非基本型?
展开
 我来答
地底生物
2010-09-06 · TA获得超过1054个赞
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:109万
展开全部
方法调用时 int基本类型为传入参数 是值传递 就是将int的内容复制了一遍 所以 在exchange方法中的x和y 与main中的x、y没有关系
如果你传入的是一个非基本类型的对象 那传递的就是内存引用 这样修改才会影响到main
wohltee
2010-09-06 · TA获得超过375个赞
知道答主
回答量:282
采纳率:0%
帮助的人:210万
展开全部
这和交换没有任何关系,它这题本来就是陷阱题

因为你的静态方法解决的是两数交换,但是就其t1和t2内存地址的数值本来就没有变
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百炼钢JavaGo
2010-09-06 · TA获得超过138个赞
知道小有建树答主
回答量:120
采纳率:100%
帮助的人:28.9万
展开全部
你这个程序,写的一点意义也没有。
----
你想问,Java 传值,还是 传引用吧???
----
对于基本类型,是按值传递的。 就像你的程序。
对于非基本类型,就是引用传递。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
datou_43
2010-09-06
知道答主
回答量:8
采纳率:0%
帮助的人:6.9万
展开全部
我觉得t1,t2和方法中的x,y没有关系,即使用了非基础类型,t1和t2的值也不会改变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式