博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ReferenceTypeDemo
阅读量:6413 次
发布时间:2019-06-23

本文共 1430 字,大约阅读时间需要 4 分钟。

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

转载于:https://www.cnblogs.com/softidea/p/4668939.html

你可能感兴趣的文章
关于监控工具的主动发起性能测试
查看>>
我的友情链接
查看>>
OpenSSL学习(十六):基础-指令rand
查看>>
KeyMob致力于打造国内领先的移动广告平台
查看>>
路由选路原则
查看>>
jvm 学习(一)
查看>>
JavaScript简介
查看>>
SQL Server附加数据库拒绝访问解决方法汇总
查看>>
SM2算法原理及实现
查看>>
RHCA教材翻译计划
查看>>
js-小括号在不同场合下的作用
查看>>
我的友情链接
查看>>
kvm中虚拟机的硬盘扩容
查看>>
Android (Launch Mode) 四种启动模式
查看>>
透视学理论(二)
查看>>
Dubbo/HSF在Service Mesh下的思考和方案
查看>>
Django form表单
查看>>
CTYL-9.14(tomcat端口与阿里云安全组,域名与tomcat配置,域名与反向代理)
查看>>
Java 多线程相关问题记录
查看>>
LNMP架构介绍、MySQL安装、PHP安装、 Nginx介绍
查看>>