导航:首页 > 编程语言 > java引用数组

java引用数组

发布时间:2025-08-25 21:19:00

① 咨询java高手,对象数组作为方法参数时的引用传递的问题

方法一其实也是按引用传递,但是千万千万要注意,你要修改的是“对象的值”,而不是“对象引用的值”。形参和实参对应的是对象的引用地址,所以这句写得很有问题: str1=str2;
你这里是试图将str1的值用str2代替, 但是这里的str1是形参,当外面传入了一个实参的对象引用是,你只是将内部的形参的引用改掉了,而没有修改实参的内容...这样在内部是把str1,str2对调了,但是外部实参的对象引用没有变,还是原来的值。

如果要把该方法生效,可以修改方法1如下:

public void SwapString1(StringBuffer str1, StringBuffer str2) {
StringBuffer str3 = new StringBuffer();
str3.append(str1.toString());
str1.replace(0, str2.toString().length(), str2.toString());
str2.replace(0, str3.toString().length(), str3.toString());
}
str1=str2;

② Java 为什么字符数组名无法作为引用来传递

因为你在 deleteRepeats方法中 charArr=str.toCharArray();这一步进行的时候,他根本不是在原有数组上进行修改,而是将方法内的局部变量charArr指向了一个数组,这个数组是toCharArray()生成的。而原有的数组自然是不变。

误区1.你以为charArr是一个对象,其实charArr只是一个引用。charArr=str.toCharArray();改变的是引用,没有改变引用指向的对象。
=运算符,只改变了引用,没有改变任何对象,原数组没有改变,新数组也不是=运算符生成的。

误区2.你以为方法内的charArr和main中的charArr是一个引用,其实他们是两个引用只不过,一开始指向一个数组,charArr=str.toCharArray();执行过之后,改变了deleteRepeats方法charArr引用。 使其指向了一个新数组。

阅读全文

与java引用数组相关的资料

热点内容
网络卡是什么问题啊 浏览:595
class文件直接修改 浏览:221
图片怎么变成文件夹模式 浏览:653
知道pin码怎么破解密码 浏览:20
如何缩小app图标大小插件 浏览:664
鸿蒙系统微信下载的文件存在 浏览:853
苹果手机怎样和智能手机传文件 浏览:239
cnc数控编程在哪里学 浏览:702
阿尔派如何连接网络 浏览:810
2014手机qq所有的版本 浏览:58
活字格javascript 浏览:352
app合作需要注意什么 浏览:370
o2o手机网站源码 浏览:170
jsp弹出注册页面 浏览:56
三星s6edge十升级70 浏览:987
电脑端微信查看源代码 浏览:795
ibatis配置文件详解 浏览:658
网络专用配置文件 浏览:837
科技论文word下载 浏览:570
vuejs20路由 浏览:853

友情链接