zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    R、Python、Scala和Java,到底该使用哪一种大数据编程语言?
    localStorage、sessionStorage用法总结
    Jquery创建动态表单
    DOM对象和js对象以及jQuery对象的区别
    Spring事务管理——回滚(rollback-for)控制
    java 中利用反射机制获取和设置实体类的属性值
    SpringMVC注解@Component、@Repository、@Service、@Controller区别
    @DateTimeFormat 和 @JsonFormat 注解
    html 获取项目根路径
    jquery控制元素的隐藏和显示的几种方法。
  • 原文地址:https://www.cnblogs.com/lbloveab/p/7242108.html
Copyright © 2011-2022 走看看