对象调用很容易忽视的地址问题

对象调用很容易忽视的地址问题

package com.tcf;

import java.util.LinkedList;
import java.util.List;

public class NewEntity {

public static void main(String[] args) {
    // 对象调用很容易忽视的一点
    /*
     * Been b = new Been(); List<Been> list = new LinkedList<Been>();
     * 
     * b.setName("a"); b.setNumber(1); list.add(b);
     * 
     * //一个地址指向一个堆块,当这个堆块的内容改变时,这个指向堆块的地址并没有变
     * 
     * b.setName("b"); b.setNumber(2); list.add(b);
     * 
     * System.out.println(list.get(0).getName() + ": " +
     * list.get(0).getNumber());
     */

    /*
     * Been b = new Been(); List<Been> list = new LinkedList<Been>();
     * 
     * b.setName("a"); b.setNumber(1); list.add(b);
     * 
     * Been c = new Been();
     * 
     * c.setName("b"); c.setNumber(2); list.add(b);
     * 
     * System.out.println(list.get(0).getName() + ": " +
     * list.get(0).getNumber());
     */
    // 开辟多个地址和堆块
    Been b = new Been();
    List<Been> list = new LinkedList<Been>();

    for (int i = 0; i < 2; i++) {
        b.setName("a" + i);
        b.setNumber(i);
        list.add(b);
    }

    // 开辟一个地址和多个堆块
    Been c;
    List<Been> list1 = new LinkedList<Been>();

    for (int i = 0; i < 2; i++) {
        c = new Been();
        c.setName("a" + i);
        c.setNumber(i);
        list1.add(c);
    }

    System.out.println(list.get(1).getName() + ": "
            + list.get(1).getNumber());

}

}

posted @ 2015-06-29 17:42  ChickenTang  阅读(108)  评论(0)    收藏  举报