类的实例与实例的成员变量的销毁
来源:互联网 发布:如何用备忘录编程 编辑:程序博客网 时间:2024/04/26 22:00
我对类的实例所占用的内存有个误区:我认为类的实例的内存大小为其下所有成员变量的内存之和,它可能占内存里的一大块区域。
比如:Class A{
private int i;
},在堆内存里new一个A的实例a,请问a的内存大小是多少?是4个字节吗?
站在内存的角度上,它只分配了4个字节的空间给成员变量i,但它根本不知道什么是实例,因为实例是一个抽象的概念。所以我认为a没有占用任何内存,倒是它的成员变量i占有内存。
那么我们销毁a的时候,内存释放了吗?什么都没有释放,因为它就没占用内存。我们要真正要释放的是a下面的成员变量i的内存。我们平时所谓的销毁a,导致内存的释放,其实是因为垃圾回收帮忙了,a的销毁导致i的引用丢失,进而销毁了i,这才释放了内存。
也就是说,不管类的实例怎么置null,如果不能让它的成员变量引用丢失,那么内存是不会释放的。以上是我的一点看法。
0 0
- 类的实例与实例的成员变量的销毁
- 类的实例和实例的成员变量的销毁
- 实例变量与成员变量的区别
- 实例变量与成员变量的使用
- 类的成员变量和实例变量
- 类变量、成员变量、实例变量、局部变量、静态变量、全局变量的定义与区别
- 成员变量,局部变量,实例变量,类变量的区别
- 类的成员变量实例化之一
- 实例变量与成员变量的区别 Objective-C
- 成员变量:类变量和实例变量的区别
- Java的类成员变量,实例变量,类变量,成员方法,实例方法,类方法
- 成员变量、实例变量、类变量、成员方法、实例方法、类方法的区别
- 成员变量、实例变量、类变量、成员方法、实例方法、类方法的区别
- 成员变量、实例变量、类变量、成员方法、实例方法、类方法的区别
- 成员变量、实例变量、类变量、成员方法、实例方法、类方法的区别
- 成员变量、实例变量、类变量、成员方法、实例方法、类方法的区别
- 成员变量、实例变量、类变量、成员方法、实例方法、类方法的区别
- 成员变量、实例变量、类变量、成员方法、实例方法、类方法的区别
- Android HOOK工具Cydia Substrate使用详解
- 读一读Android系统源代码 一:下载源码、编译framework模块
- Rabbit实例代码
- iScroll4 滚动到底部检测
- UISnapBehavior的简单使用
- 类的实例与实例的成员变量的销毁
- android4.4 车载灭屏 按任意键及触摸屏幕恢复亮屏
- golang语法总结(十一):判断语句if
- moveTaskToBack退后台
- keilc51编程中 发现一个中断函数和中断被调函数的重要关系。
- LDAP注入与防御剖析
- POJ1815 Friendship(求最小割点 dinic)
- Cydia Substrate是一个代码修改平台
- Neutron如何开发插件?