zoukankan      html  css  js  c++  java
  • ReferenceTypeDemo

    对象a作为参数argument在方法中使用时,如果argument在方法中赋予另一个对象的地址,则之后方法中对参数argument的操作,都不会影响到对象a.

    方法中参数argument如果是对象,argument是源对象a的副本,方法执行结束,副本argument就被移出stack,在合适的时间就会被GC回收

    /*2015-7-22*/
    public class ReferenceTypeDemo {
        public static void main(String[] args) {
            Person tom = new Person("Tom", 20);
            System.out.println(tom);
            modify(tom);
            System.out.println(tom);
        }
    
        private static void modify(Person tom) {
            System.out.println("modify():" + tom);
            Person jack = new Person("Jack", 10);
            tom = jack;
            System.out.println(tom);
            System.out.println("modify():" + tom);
            tom.setName("Tom-modify");
            System.out.println("modify():" + tom);
        }
    
    }
    
    class Person {
        private String name;
        private int age;
    
        public Person(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        @Override
        public String toString() {
            return Integer.toHexString(hashCode()) + ";Person [name=" + name + ", age=" + age + "]";
        }
    }

    Output:

    14318bb;Person [name=Tom, age=20]
    modify():14318bb;Person [name=Tom, age=20]
    ca0b6;Person [name=Jack, age=10]
    modify():ca0b6;Person [name=Jack, age=10]
    modify():ca0b6;Person [name=Tom-modify, age=10]
    14318bb;Person [name=Tom, age=20]

     Tips:
    hasCode()可以标识对象。Map中判断是否包含一个对象,就是使用hashCode()和Equals()来判断

  • 相关阅读:
    [NOI2004]郁闷的出纳员
    【数论】[SDOI2010]古代猪文
    【2-SAT】[JSOI2010]满汉全席
    【数位DP】CF55D Beautiful numbers
    c语言编译的四个阶段
    转评:Python集合
    转评:Python字典
    Python iterators and generators:迭代器和生成器
    Python函数-具备特定功能的可以有参数和返回值的可重用的代码块儿
    Python-简版List和Tuple
  • 原文地址:https://www.cnblogs.com/softidea/p/4668939.html
Copyright © 2011-2022 走看看