举个栗子
xxx大街=栈
xxx大街的xx小区=堆
小区的户型=对象
户型一样,模板对象一样
用户型造房间,是不是每造一个都要新开一个地方吧,不能再同一个地方叠加吧
住进房屋里的人=属性 每个房间里住的虽然都是人,但是每个人不一样吧
小区内的公共设施=属性 因为是公共的,所以地址一样
不要想得太复杂 不同引用可以指向同一个实例。实例是在堆中建立,赋值也在堆中,类是模板,实例依靠模板创建在堆中,再把实例地址给栈中的引用。 很明显,s1和s2指向的是不同的student对象。只要是使用new关键字创建的对象,都会在堆中分配一块内存空间。
s1和s2仅仅只是指向堆空间的地址而已。 内存地址可以理解为一个个的小房子,每创建一个对象,堆内就分配一块地方,这个地方的内存地址,让栈上的变量管理,只是因为栈运行速度快,分工不同而已.这是CPU管理的事情,你建立100个对象,就分配一百个地方,除非没有空间了.对于实例变量赋值,这是机制问题,难道让下等占用上等位置?计算机是人做出来的,现在还处于弱智阶段 我也刚理解创建对象,这样理解, 对象就是调用 方法的权限,不过虽然我理解了,还是那么晦涩难懂, 理解的真深,佩服。
页:
[1]