1、一般情况基本数据类型传的是值,包括基本类型的封装,如Integer、Double等,String也是是传值,比较特殊。而非基本类型传递是引用,引用也是一种类型,它也有值,而这个值就是对象实际的内存地址,通过这个引用可以改变内存的地址
2、对于函数调用,需要看实现方式,有的会对传递的对象状态进行改变,有的不会对对象状态进行改变,简单的判断规则是,如果返回值是void,那么就很可能会对对象状态进行改变,而返回值不为void,那么就很可能不会对对象状态进行改变。
下面举个传引用的例子:
StringBuffer a= new StringBuffer("xX");
函数调用:
一、会对参数对象状态进行改变,返回值是void
void change(StringBuffer b){
b.append("ddd");
}
二、不会对参数对象状态进行改变,返回值不为void
StringBuffer change(StringBuffer b){
b = new StringBuffer("ss")
b.append("ddd");
return b;
}
|