按引用传值

2018-12-01  本文已影响0人  翘少楚

引用传值

引用传递弥补了值传递的不足,如果传递的数据量很大,直接复过去的话,会占用大量的内存空间,而引用传递就是将对象的地址值传递过去,函数接收的是原始值的首地址值。在方法的执行过程中,形参和实参的内容相同,指向同一块内存地址,也就是说操作的其实都是源数据,所以方法的执行将会影响到实际对象。
引用类型常见的引用类型:类类型,接口类型和数组。

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'}

上一篇 下一篇

猜你喜欢

热点阅读