• java引用地址传递的实例


    面试中好多次都遇到这样的问题,今天终于搞懂了...

    class Test03 {
        public static void main(String[] args) {
            StringBuffer s = new StringBuffer("good");
            StringBuffer s2 = new StringBuffer("bad");
            test(s, s2);
            System.out.println(s);// goodhah
            System.out.println(s2);// bad  
        }

        static void test(StringBuffer s, StringBuffer s2) { // 此时会在方法栈中新建引用,但指向同一内存地址
            System.out.println(s);// good
            System.out.println(s2);// bad
            //s2跟传进来的s2是两个对象,此时的s2就跟s指向的是一样的,所以在改变此时的s2或者改变s的时候也改变了s的值,而传进来的s2是没有改变的
            s2 = s;
            s = new StringBuffer("new");
            System.out.println(s);// new
            System.out.println(s2);// good
            //s.append("hah");
            s2.append("hah");
        }
    }

  • 相关阅读:
    Java异常处理和设计
    一次qps测试实践
    Alternate Task UVA
    Just Another Problem UVA
    Lattice Point or Not UVA
    Play with Floor and Ceil UVA
    Exploring Pyramids UVALive
    Cheerleaders UVA
    Triangle Counting UVA
    Square Numbers UVA
  • 原文地址:https://www.cnblogs.com/working/p/3282765.html
Copyright © 2020-2023  润新知