注册 登录
编程论坛 JAVA论坛

新人提问题...关于栈和堆的分配的问题

Plinkchan 发布于 2015-08-14 11:15, 581 次点击
class B
{
    int age;
    void show()
    {
        System.out.println("oh! What the fuck! my age is "+ age);   
    }
}
public class A
{
    public static void main(String[] args)
    {
        B p1 = new B();
    p1.age = 20;
    B p2 = p1;
    p2.age =10;
    p1.show();
    p2.show();
    }
}
这里输出的结果是两个都是10...
我想问一下....这里的p2和p1...我可以理解为:
p1和p2都是指向同一个new B()的类....
所以不管p1和p2谁改变..
结果两个都是相同的...
因为都是改变了同一个new B()的原因....
这样子么....

求大神判断一下是否理解正确...
4 回复
#2
wp2319572015-08-14 11:23
两个指针 指向的物理地址是相同的  其中一个指针相当于另一个指针的影子
#3
诸葛欧阳2015-08-14 12:59
两个指针都指向同一个对象
#4
corfox2015-08-16 22:21
应该说p1与p2都是对同一个对象的引用
#5
日知己所无2015-08-18 21:28
4楼呱唧呱唧,Java里一般都用引用这个词,很少用指针这个词,因为Java世界里一切都是对象,不用指针也能安全实现所有功能,是其初期设计时的一个重要取舍
1