zoukankan      html  css  js  c++  java
  • 值传递和引用传递

    1、java中的数组类型:

      基本类型:byte short int float long double char boolean

      引用类型:类类型,接口类型,数组类型。

      基本类型的变量保存原始值,它代表的是数值本身,

      引用类型的变量保存引用值,“引用值”指向内存空间地址,代表某个对象的引用,而不是对象本身,引用值指向栈中存放的地址,而对象在堆中。

    2、基本类型和引用类型的区别

      基本数据类型在声明时系统就给它分配空间,这里面包括数据空间,引用类型不同,声明时只给变量分配引用空间,不分配数据空间。

    3、引用传递和值传递

      值传递:

      方法调用时,实际参数的值传给方法的形参,形参收到的只是实参的一个副本,实际参数的值没有变化,在方法中对形参的改变不影响实参的值。

      引用传递:

      也称为传地址。方法调用时,实际参数的地址传给形参,因此形参指向的对象和实参指向的对象相同,因此方法中对形参的改变会影响实参的值。

      例子:

      

    public class Object {
        public int b = 99;
    }

    分别传参基本数据类型和引用数据类型

    public class BasicAndObject {
        public void test1(int a){
            a=a++;
            System.out.println("test1方法中的:"+a);
        }
        public void test2(Object obj){
            obj.b = 100;
            System.out.println("test2方法中的:"+obj.b );
        }
        public static void main(String[] args) {
            BasicAndObject ba = new BasicAndObject();
            int a = 99;
            ba.test1(a);
            System.out.println("main函数中的"+a);
            
            Object o = new Object();
            ba.test2(o);
            System.out.println("main函数中的"+o.b);
        }
    }

    结果:

    test1方法中的:99
    main函数中的99
    test2方法中的:100
    main函数中的100

     

    从结果中,值传递没有改变原来实参的值,但是引用传递改变了原来对象的值。

      

  • 相关阅读:
    短信
    solr测试用的配置
    中文词启动
    配置域
    applicationContext-redis.xml
    Redis端口配置
    springDataRedis 依赖
    FastDFSClient上传图片工具类
    security 页面测试
    PHP图片压缩功能(按比例图片缩放)(转载)
  • 原文地址:https://www.cnblogs.com/qducn/p/8034554.html
Copyright © 2011-2022 走看看