zoukankan      html  css  js  c++  java
  • 编程细节 —— 按值传递、按引用传递(final、const)

    • System.out,out 是 System 类内定义的静态 final PrinterStream 变量;

      public final class System {
          ...
          public final static PrinterStream out = null;
          ...
      }

    0. 总论

    • 注意区分 Java 的按值传递和按引用传递,但使用按引用传递时,被调端不会对(没有能力)对调用端造成任何影响,
    • 按引用传递便具备对调用端造成影响的能力,如果在按引用传递的情况下,还想保证不会对调用端产生任何影响,此时便可以使用 final 关键字(C/C++ 则是 const 关键字)修饰参数;

    1. 按值传递

    当传递的是一个对象时:

    class Test{
        private int i = 0;
    
        public Test(int i) {
            this.i = i;
        }
        // setI, getI
    }
    
    public class PassByValue {
        private static void update(Test t) {
            t = new Test(20);   // t.setI(20); 注意二者的区别
            System.out.println(t.getI());
        }
    
        public static void main(String[] args) {
            Test t = new Test(10);
    
            System.out.println(t.getI());      // 10
            update(t);                         // 20
            System.out.println(t.getI());      // 10 仍然是 10 
        }
    }

    当然也可以直接输出对象:

    public class PassByValue {
        private static void update(Test t) {
            t = new Test(20);
            System.out.println(t);
        }
    
        public static void main(String[] args) {
            Test t = new Test(10);
            System.out.println(t);      // details.Test@15db9742
            update(t);                  // details.Test@6d06d69c
            System.out.println(t);      // details.Test@15db9742
        }
    }
  • 相关阅读:
    算法之冒泡排序
    实现秒杀的几个想法(续)
    乐观锁
    wifi-sdio接口
    解压vmlinuz和解压initrd(initramfs)
    supplicant
    wpa_supplicant测试
    qu
    netlink
    wpa_supplicant安装
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9421194.html
Copyright © 2011-2022 走看看