作者: 曾玉锋 时间: 2012-7-22 10:48
楼主的问题实质在:没弄明白引用类型对象的创建在内存中的具体表现是怎样的。
我用自己的理解来解释一下,希望你能明白。
Data data = new Data();
这个表达式可以分为两部分,Data data 只是声明一个Data 类型 的名称 data,不分配内存空间,也就不存在实际意义,只是一个名字;
而new Data() 则是真实的在内存中分配一个空间并创建一个Data 类型的对象。
只有在将new Data() 赋值给Data data以后,data才有了实际意义。
举个通俗一点的例子,
有一个人名字叫"张三",但是我们并不认识,所以对于张三是谁,张三的信息我们不去关心,因为没有啥意义。
当有一天,有一个人来到大家面前自我介绍说:"我是张三"。OK,大家都知道了"张三"可以代表这个人了,那么我们就可以去对他的特征和行为进行评价。
如果有一天,这个人缺胳膊少腿了,那么他还是"张三",因为"张三"这个名字是代表这个人,指向这个人的。
所以,下面这段代码代表的是同一个意思
for (int i = 100; i < 103; i++) {