在java中String的传参
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java中String的传参相关的知识,希望对你有一定的参考价值。
在java中String是一个引用类型,而为什么当一个String类型对象作为参数时,返回值竟然没有改变????
这个是储存结构的问题1,str1是个地址值,传给str的也是这个地址值,此时,str=str1=地址值,都指向常量池中的“good”
2,当执行 str="test ok"后,常量池中出现“test ok”,str改变且指向常量池中的“test ok”,此时str1仍指向常量池中的“good”,str地址值不等于str1地址值
3,你的程序并不能说明你的问题,输出结果应该是 test ok and gbc
4,简单来记:基本数据类型和String str在传参方法中改变是无效的,但String[] str、char[] ch之类是有效的 参考技术A public class a
public static void main(String[] args)
String str1="good";
char[] ch = 'a','b','c';
a ex=new a();
ex.change(str1,ch);
public void change(String str,char ch[])
str="test ok";
ch[0]='g';
System.out.print(str+" and ");
System.out.println(ch);
参考技术B public void change(String str,char ch[])
str="test ok";
ch[0]='g';
这里的 str 和 上面变量没关系 ~public void change(String str1,char ch[])
str="test ok";
ch[0]='g';
改成这样试一试。。 参考技术C change方法里面String str 是一个新的对象引用,下面str=“test ok”是传给它了~LS那样可以~~~ 参考技术D 因为string是不可变的 当你修改后 你没有重新把修改后的值引用替换掉原来的引用
以上是关于在java中String的传参的主要内容,如果未能解决你的问题,请参考以下文章