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()来判断

  • 相关阅读:
    DFT
    BSDL
    穆尼里奥:未派上最好点球手;齐达内成功并不意外
    module使用和设置
    APU (美国AMD公司研发的加速处理器)
    Lucio: We avoided Mourinho after every loss
    高位压迫——萨基给世界足坛带来的技术革命
    穆里尼奥:曼联没有在今夏尝试过签下C罗
    Linux 的 Out-of-Memory (OOM) Killer
    shell source命令说明
  • 原文地址:https://www.cnblogs.com/softidea/p/4668939.html
Copyright © 2011-2022 走看看