美文网首页
按引用传值

按引用传值

作者: 翘少楚 | 来源:发表于2018-12-01 16:09 被阅读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'}

    相关文章

      网友评论

          本文标题:按引用传值

          本文链接:https://www.haomeiwen.com/subject/fwkrcqtx.html