精华内容
下载资源
问答
  • 值传递和引用传递

    2017-09-19 10:12:28
    值传递和引用传递

    所谓引用传递其实就是传的地址的副本
    只有基本数据类型是传值,其他类型都是引用传递

    //基本数据类型
    byte short int float long double char boolean

    根据这个定义可以解决一些疑惑:什么情况下调用函数会改变对象本身,什么时候在函数中改变对象没有作用。

    public static void main(String[] args) {
    
            String a = new String("valueA");
            changA(a);
            System.out.println(a);
    
        }
    
        private static void changA(String a) {
            a = new String("valueB");
        }
    输出:valueA

    说明:changA传递的参数a是一个地址副本,这个地址指向的是堆中分配的值valueA,在changeA函数中我们把副本a指向了另一个堆中的值valueB,但原始的a变量指向的值没有改变。

    对于普通的类也是一样:

    public static void main(String[] args) {
    
            User u = new User("River");
            changU(u);
            System.out.println(u);
        }
    
        private static void changU(User u) {
            u = new User("Peter");
        }
    输出:User{name='River'}
    展开全文
  • 值传递 引用传递

    2021-01-24 01:38:12
    值传递 引用传递 涉及到内存中存储数据得问题,在方法中调用得情况下; 值传递:将值作为参数传递到方法中,进行操作,不影响原本数据值;针对基本数据类型 引用传递:将引用类型数据作为参数传递到方法中,对这...

    值传递 和 引用传递

    涉及到内存中存储数据得问题,在方法中调用得情况下;

    • 值传递:将值作为参数传递到方法中,进行操作,不影响原本数据值;针对基本数据类型
    • 引用传递:将引用类型数据作为参数传递到方法中,对这个数据进行赋值操作,会影响传进来得引用类型数据得值

    传递中得内存问题

    • 值传递,只使用到了栈,不涉及堆内存,所以操作得数据不会发生永久变化;
    • 引用传递,使用到栈和堆内存,堆内存中的数据,会被保存,所以修改得内容会对下次访问造成影响;

    值传递 和 引用传递

    • 在程序中,就一个对象可以有多种身份来表示,这些身份必须是和对象所属得类产生关系的;
    • 在程序中,只要两个类、接口产生关系,就可以使用父类来表示子类;
    • Java中产生关系得方式: 继承(类) 实现(接口)在程序中
      可以执行的属性,看当前的身份(等号左侧);执行出来的内容,也是看当前的身份(等号左侧);
      可以执行的方法,看当前的身份(等号左侧),执行出来的内容,看当前对象的(等号右侧);
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,970
精华内容 5,188
关键字:

值传递和引用传递