导航:首页 > 编程语言 > 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引用数组相关的资料

热点内容
网络中常用的传输介质 浏览:518
文件如何使用 浏览:322
同步推密码找回 浏览:865
乐高怎么才能用电脑编程序 浏览:65
本机qq文件为什么找不到 浏览:264
安卓qq空间免升级 浏览:490
linux如何删除模块驱动程序 浏览:193
at89c51c程序 浏览:329
怎么创建word大纲文件 浏览:622
袅袅朗诵文件生成器 浏览:626
1054件文件是多少gb 浏览:371
高州禁养区内能养猪多少头的文件 浏览:927
win8ico文件 浏览:949
仁和数控怎么编程 浏览:381
项目文件夹图片 浏览:87
怎么在东芝电视安装app 浏览:954
plc显示数字怎么编程 浏览:439
如何辨别假网站 浏览:711
宽带用别人的账号密码 浏览:556
新app如何占有市场 浏览:42

友情链接