zoukankan      html  css  js  c++  java
  • java基础——值传递和应用传递

    public class StringTest {

    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    StringBuffer a = new StringBuffer("A");
    StringBuffer b = new StringBuffer("B");
    operate(a,b);
    System.out.println(a.toString() + "," + b);
    }

    static void operate(StringBuffer x, StringBuffer y) {
    // TODO Auto-generated method stub
    y.append(x);
    // System.out.println("=============");
    // System.out.println("y=:"+y+"这是传入的b");
    // System.out.println("x=:"+x+"这是传入的a");
    y = x;
    // System.out.println(y = x);
    // System.out.println("-------------");
    // System.out.println("y=:"+y);
    // System.out.println("x=:"+x);
    // System.out.println("=============");
    }

    }

    结果:A,BA

      比如string a=A这里字符"A"会开辟一个物理地址来储"A"这个值,引用a也会开辟一个物理地址用来存放字符"A"存储的所在地址。当你用string b = a来赋值的时候,是把a的物理地址传递给b而不是字符"A"的地址。这时候改变b引用的内容,丝毫不会影响到a引用的内容。然后方法结束后这两个临时的变量a和b都被抛弃了,这丝毫不会改变y所引用的对象。

  • 相关阅读:
    MySQL索引底层数据结构
    numpy和matplotlib读书笔记
    Python turtle学习笔记 #11933
    turtle笔记
    五角星绘制
    六角形绘制
    叠加等边三角形绘制
    什么叫方法签名
    Java编程思想 第七章
    类加载机制
  • 原文地址:https://www.cnblogs.com/0914lx/p/6483691.html
Copyright © 2011-2022 走看看