• java中值传递和引用传递


    本来今天刚学习的内容,然后去其他博客看了下,发现都吵起来了,就是名字原因,有的说java有值传递和引用传递,有的说引用传递本质就是值传递,我管你杂说的,只要自己理解好,代码知道运行结果就好了。

    我用自己的话,自己的理解来解释下,反正都是自己写着玩,自己看的

    值传递:传递的值,这个值以后怎么改变,值不会发生改变的。

    引用传递:将对象的引用地址传递过去,如果值发生改变,那么源值也发生改变。

    代码如下:

    值传递

    public class Test1 {

        public static void main(String[] args) {        
            int a=1;
            fun(a);
            System.out.println("main中的值"+a);
        }
        public static void fun(int a){
            a=2;
            System.out.println("fun中的值"+a);
        }
    }

    console结果:

    fun中的值2
    main中的值1

    引用传递:

    class Demo1{
        private String msg="hello";
        public Demo1(String msg) {        
            this.msg = msg;
        }
        public String getMsg() {
            return msg;
        }
        public void setMsg(String msg) {
            this.msg = msg;
        }    
    }
    public class Test2 {

        public static void main(String[] args) {
            Demo1 demo=new Demo1("world");
            fun(demo);
            System.out.println(demo.getMsg());
        }
        public static void fun(Demo1 demo){
            demo.setMsg("hi");
        }

    }

    console结果:hi

    补充一个例题:

    class Value{
    	public int i=15;
    }
    public class Test{
    	public static void main(String argv[]){
    	Test t=new Test( );
    	t.first( );
    }
    
    	public void first( ){
    		int i=5;
    		Value v=new Value( );
    		v.i=25;
    		second(v,i);
    		System.out.println(v.i);
    	}
    
    	public void second(Value v,int i){
    		i = 0;
    		v.i = 20;
    		Value val = new Value( );
    		v = val;
    		System.out.println(v.i+" "+i);
    	}
    }
    

     console结果:15,0,20

     

  • 相关阅读:
    MySQL 抓包工具
    php安全配置记录和常见错误梳理
    Mongodb副本集+分片集群环境部署记录
    线上mongodb 数据库用户到期时间修改的操作记录
    Redis+TwemProxy(nutcracker)集群方案部署记录
    Linux下Redis主从复制以及SSDB主主复制环境部署记录
    以多个实例方式打开Notepad++
    什么才是程序员的核心竞争力?zz
    谈谈如何在面试中发掘程序猿的核心竞争力zz
    解决Android SDK Manager更新时出现问题
  • 原文地址:https://www.cnblogs.com/lbloveab/p/7242108.html
Copyright © 2020-2023  润新知