• 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

     

  • 相关阅读:
    运行Jmeter时,出现java.util.prefs.WindowsPreferences <init>
    Jmeter下载安装及JDK安装
    面试常用-基础理论(五)
    Fiddler (六) 最常用的快捷键
    Fiddler (五) Mac下使用Fiddler
    Fiddler (四) 实现手机的抓包
    Fiddler (三) Composer创建和发送HTTP Request
    Fiddler (二) Script 用法
    Web调试工具——Fiddler介绍
    生成任意位数随机字符串
  • 原文地址:https://www.cnblogs.com/lbloveab/p/7242108.html
Copyright © 2020-2023  润新知