java 类中定义一个String变量a并赋值1,后在方法中赋值2,那在该方法中调用a时,得到的是值1还是值2?

 我来答
火神朱雀
2013-06-07 · TA获得超过334个赞
知道小有建树答主
回答量:276
采纳率:100%
帮助的人:271万
展开全部
在重新赋值前调用肯定是1,赋值后调用a是2,比如你手上只能拿一样东西,你先拿了个苹果,别人问你你手里是什么,你说是苹果,然后我给了你一个西瓜,你把苹果丢掉了,或者吃了,你拿着西瓜,别人问你手里是什么,你肯定是西瓜,因为重新给你了新的东西
尘_繁华散尽
2013-06-07 · 超过24用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:55.7万
展开全部
看方法调用a的时候是不是已经赋值成2了,先调a再赋值就是用的1,先赋值再调a就是用的2
追问
public class Test1 {     
String b =1;
String a=b;
a = 2;
System.out.println(a);
}
此时输出a的值是1,还是2 ??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
氷_岚
2013-06-07
知道答主
回答量:14
采纳率:0%
帮助的人:12.2万
展开全部
方法赋值2后,a的值就是2了,但在这个方法外调用时a的值还是1。
给你个程序自己运行试试吧。
public class Test1 { //类名是Test1
public static void main(String[] args) {
String a = "1";
replace(a);
System.out.println(a);
}
public static void replace(String a){
a = "2";
System.out.println(a);
}

}
追问
public class Test1 {     
String b =1;
String a=b;
a = 2;
System.out.println(a);
}
此时输出a的值是1,还是2 ??我查资料,说String类型的值不会变化??
追答
此时输出的是"2“,String定义时别忘了"",String类型是引用类型,String类型的值是不可变的,
a = b,是将b内容的引用赋值给a,此时a、b指向同一内容,a = "2",是将新内容的引用赋给了a,
原来的引用被替代。
我以下面这个例子来解析吧
String a = “1”;
a = "2";
此时a的值就为2,这是因为内容2的引用赋给了a,内容1原本应该还是存在的,但a不能再访问它。然而此时的内容1没有任何引用,成为了垃圾,Java虚拟机会自动进行垃圾回收,而使内容1被删除。
这样解析明白吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f229271
2013-06-07 · TA获得超过318个赞
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:117万
展开全部
你在开始定义a为1,此时的a值就是1,当你在方法中把a的值赋予2的时候,这时的1已经被2覆盖了,就相当于替换掉了1,所以方法中调用的时候是2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pangzhiming
2013-06-07 · TA获得超过374个赞
知道小有建树答主
回答量:787
采纳率:100%
帮助的人:347万
展开全部
那在该方法中调用a时 当然是2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式