当前位置: 技术问答>java相关
送分了!!!!!!!!!
来源: 互联网 发布时间:2015-01-17
本文导语: import java.lang.*; public class asa { public static void main(String args[]) { String str=new String("World"); char ch[]={'H','e','l','l','o'}; change(str,ch); System.out.println(str + "and" + ch); ...
import java.lang.*;
public class asa
{
public static void main(String args[])
{
String str=new String("World");
char ch[]={'H','e','l','l','o'};
change(str,ch);
System.out.println(str + "and" + ch);
}
public static void change(String str, char ch[])
{
str="Changed";
ch[0]='C';
}
}
为什么ch被改变,而str没被改变?
public class asa
{
public static void main(String args[])
{
String str=new String("World");
char ch[]={'H','e','l','l','o'};
change(str,ch);
System.out.println(str + "and" + ch);
}
public static void change(String str, char ch[])
{
str="Changed";
ch[0]='C';
}
}
为什么ch被改变,而str没被改变?
|
Java认为String是传值调用,而数组是引用调用。
传值调用时实际上系统是复制了另一个对象,而引用调用会改变被引用的对象的值。
传值调用时实际上系统是复制了另一个对象,而引用调用会改变被引用的对象的值。
|
str这个引用值是作为 形参 传进来的,函数内部对这个值的改变不影响外部。
str="Changed"; 赋予str一个新的引用值,但这只在函数内部起作用。
换句话说,参数str 其实是原引用值的一个拷贝
str="Changed"; 赋予str一个新的引用值,但这只在函数内部起作用。
换句话说,参数str 其实是原引用值的一个拷贝
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。