java将对象传到另一个类再赋值 地址会改变

publicclassSSS{publicstaticvoidmain(String[]args){Stringa="aaaa";Stringb=a;System.out... public class SSS{
public static void main(String[] args) {
String a="aaaa";
String b=a;
System.out.println("a的地址:"a+"b的地址"+b);
//此时地址相同

XXX.test(a);
}
}
public class XXX{
public static void main(String[] args) {
}
public static void test(String c) {
String c=c";
System.out.println("c的地址:"c);
//此时地址与上面的 地址不同 为什吗?堆栈地址
}
}
展开
 我来答
无野楼升域醉0t
2018-12-13 · TA获得超过8552个赞
知道小有建树答主
回答量:1498
采纳率:88%
帮助的人:501万
展开全部

首先你给出的代码有问题一定是编译不过的。

而且看完了 不知道你要干什么

有几处是少双引号 加号什么的

还有test方法参数叫做c,那么再去定义一个叫做c的变量编译会报错的。而且让人搞不明白这是要干什么!

内裤最大功能
2018-12-13 · TA获得超过3105个赞
知道大有可为答主
回答量:3202
采纳率:79%
帮助的人:487万
展开全部
还真不知道哎。我猜,是因为变量只在当前{ }里有效。
就是说在同一个{ }里时,string变量定义之后,再赋给其它变量,引用的是同一地址 所指向的堆里的值。
我猜是这样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式