引用传值
引用传递弥补了值传递的不足,如果传递的数据量很大,直接复过去的话,会占用大量的内存空间,而引用传递就是将对象的地址值传递过去,函数接收的是原始值的首地址值。在方法的执行过程中,形参和实参的内容相同,指向同一块内存地址,也就是说操作的其实都是源数据,所以方法的执行将会影响到实际对象。
引用类型常见的引用类型:类类型,接口类型和数组。
public class PassingByReference {
static class Entity{
int key;
String value;
@Override
public String toString() {
return "Entity{" +
"key=" + key +
", value='" + value + '\'' +
'}';
}
}
private static void demo(Entity e) {
Entity demo = e;
demo.key = 1;
demo.value = "end";
System.out.println("参数的对象:"+ e.toString());
System.out.println("demo:"+ demo.toString());
}
public static void main(String[] args) {
Entity entity = new Entity();
entity.key = 0;
entity.value = "start";
System.out.println("开始时的对象entity:" +entity.toString());
demo(entity);
System.out.println("结束时的对象entity:" +entity.toString());
}
}
运行结果:
开始时的对象entity:Entity{key=0, value='start'}
参数的对象:Entity{key=1, value='end'}
demo:Entity{key=1, value='end'}
结束时的对象entity:Entity{key=1, value='end'}
网友评论