问答详情
源自:2-3 应用Runnable模拟卖票

线程1的ticketsCont存储在哪里?

难道执行时值传递了一下?

提问者:宝慕林3329632 2015-02-24 22:43

个回答

  • MartonZhang
    2015-02-26 14:58:33

    你好,ticketsCont是实例变量,它的值自然是存在堆中(每个java对象在堆中都会占据一定内存,而实例变量的值就是存储在这块内存中,类似于结构体,因此每个对象对应一个ticketsCont的值),ticketsCont跟值传递没有关系啊,如果是Runnable方式的话,传递的也只是MyThread对象引用的副本,不管ticketsCont的事,但是因为ticketsCont的值在引用和引用副本所指向的堆内存中,所以无论是引用还是引用副本改变了堆内存中ticketsCont的值,都会产生效果!