ASP.Net+Android+IO开发S、.Net培训、期待与您交流!
在第五天的基础视频里,毕老师讲了一句话:成员变量在堆内存里,局部变量在栈内存里。
我有疑惑:
既然成员变量存在于对象中,对象存在于堆中,所以成员变量存在于堆中。那么按照这样的推理,局部变量存在于方法中,而方法存在于对象中,对象存在于堆中,那是不是可以说局部变量存在于堆中?这与老师说的局部变量在栈内存里不符合啊?
然后我猜想:
当对象new出来,实体存在于堆的时候,对象里面的方法是没有出现的,或着只出现方法的声明,方法里面的局部变量并没有创建。等到对象调用此方法时,为了加快运行的速度,方法中的局部变量才会在栈中创建,所以,方法中的局部变量是在栈内的。