Java关于对象引用问题
2017-06-24 10:47
190 查看
本文通过代码来验证,使用类生成的对象作为参数传递时,传递的是引用
即新生成一个对象,把它作为传递的参数,不会生成额外的对象,全程使用的是该对象
如下所示,为一个Person类
然后用两个类分别封装它
测试程序如下,如果以下输出的地址均一样,表示没有额外生成对象,全程仅仅操作一份内存
即新生成一个对象,把它作为传递的参数,不会生成额外的对象,全程使用的是该对象
如下所示,为一个Person类
public class Person implements Serializable { private static final long serialVersionUID = 5271192200089583565L; private String name; private int age; public Person() { System.out.println("Peron"); } public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
然后用两个类分别封装它
class Objector1 { private Person person; Objector1() { } Objector1(Person person) { this.person = person; } public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } } class Objector2 { private Person person; Objector2() { } Objector2(Person person) { this.person = person; } public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } }
测试程序如下,如果以下输出的地址均一样,表示没有额外生成对象,全程仅仅操作一份内存
public class FirstApplication { public static void main(String[] args) throws Exception { Person person = new Person(); System.out.println("Person : " + person); Objector1 objector1 = new Objector1(person); System.out.println("Objector1 : " + objector1.getPerson()); Objector2 objector2 = new Objector2(); objector2.setPerson(objector1.getPerson()); System.out.println("Objector2 : " + objector2.getPerson()); } }测试结果如下所示,地址均相同
Person : Objector.Person@45ee12a7 Objector1 : Objector.Person@45ee12a7 Objector2 : Objector.Person@45ee12a7
相关文章推荐
- 关于java对象的引用问题
- 关于java中对象的循环引用问题
- 关于Java对象作为参数传递是传值还是传引用的问题
- 关于java中对象的循环引用问题(java编程思想)
- 关于java中对象的循环引用问题
- java中关于参数传递问题的解释(传值与传引用的若干问题的解释)
- JAVA开发中关于JAR引用的问题
- 关于Java String对象创建问题解惑
- 关于Java String对象创建问题解惑
- 关于java对象Clone问题
- 关于Java String对象创建问题解惑
- JAVA对象与引用、JAVA参数传递~~~转自百度文档,绕了我很久的问题终于搞明白了
- 关于Java复制对象的问题
- 今天碰到的一个问题,关于通过基类对象的引用给子类赋值
- java String的句柄引用及创建几个对象的问题
- 关于“System.NullReferenceException: 未将对象引用设置到对象的实例”问题原因。
- java中的对象引用问题的再次理解。
- 关于Java对象与对象引用
- 关于java对象序列化问题
- 关于String s1 = new String("abc") 创建一个对象问题和Java常量池总结