一般程序员()都会这样认为:用C#这样的语言编程的一个好处就是无需再考虑内存的分配和释放。你只需创建对象,然后通过一种叫做垃圾收集的机制来处理这 些对象,也就是说:当它们不再被应用程序需要的时候来自动的清除这些对象。这个过程意味着C#解决了其它语言中极难处理的问题──可怕的内存泄露。真的是 这样吗?...
分类:
其他好文 时间:
2014-06-18 18:17:55
阅读次数:
175
1栈-有编译器自动分配释放2堆-一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。-程序结束释放4另外还有一个专门放常量的地方。-程序...
分类:
其他好文 时间:
2014-06-18 15:20:36
阅读次数:
208
原文链接:http://blog.csdn.net/zsuguangh/article/details/6429592自己学习总结:1c++和java的内存使用的区别: 在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象;而在Java中,当没有对象引用指向原先分...
分类:
编程语言 时间:
2014-06-18 15:13:27
阅读次数:
244
引言:数组的元素存储于内存中连续的位置上。当一个数组被声明时,它所需要的内存在编译时就被分配。但是,我们可以使用动态内存分配在运行时为它分配内存。
一块内存的生命周期可以分为四个阶段:分配、初始化、使用、释放。
内存的分配一般使用C函数库里的malloc函数(原型:void *malloc(size_t size))。关于malloc函数应该注意一下几点:
1、malloc的参数就是...
分类:
编程语言 时间:
2014-06-17 23:28:22
阅读次数:
246
版本:1.0 日期:2014.6.11 2014.6.12版权:© 2014 kince 转载注明出处 ImageView是开发中经常使用到的一个控件,也可以说是必不可少的。对于它的使用,除了注意ScaleType的理解和设置外,还需要注意其他一些问题,比如设置一张大的背景图片内存占用和释放等。还有它的拓展性方面,像圆角图片、圆形图片、图片边框等等。因此,如果想熟练使用这个控件,就需要对其实现的...
分类:
移动开发 时间:
2014-06-17 22:51:45
阅读次数:
429
一、能避免同步吗?
取得锁会因为以下原因导致成本很高:
取得由竞争的锁需要在虚拟机的层面上运行更多的程序代码。
要取得有竞争锁的线程总是必须等到锁被释放后。
1. 寄存器的效应
计算机有一定数量的主寄存器用来存储与程序有关的数据。
从逻辑上的观点来看,每个Thread都有自己的一组寄存器。当操作系统将某个Thread分配给CPU时,它会把该Thread特有的信息...
分类:
编程语言 时间:
2014-06-16 18:58:52
阅读次数:
405
1. auto_ptr 的设计动机:函数操作经常依照下列模式进行:获取一些资源执行一些动作释放所获取的资源那么面对这些资源的释放问题就会出现下面的两种情况:一开始获得的资源被绑定于局部对象,那么当函数退出的时候,这些局部对象的析构函数被自动的调用,从而自动释放掉这些资源;一开始获得的资源是通过某种显...
分类:
编程语言 时间:
2014-06-16 13:43:39
阅读次数:
351
在Linux中进程用结构体task_struct来管理一个进程所需的所有信息(所以一般较大,在32位机上,大约有1.7KB)。为了提高效率,Linux使用了一些卓越的技术。
通过slab分配task_struct结构
Linux创建进程迅速,正是因为slab分配器预先分配和重复使用task_struct,这样就避免了动态分配和释放所带来的资源消耗(毕竟一个task_struct较大,而...
分类:
系统相关 时间:
2014-06-15 12:15:30
阅读次数:
374
构造过程
为了生成类、结构体、枚举等的实例,而做的准备过程,叫做构造过程。 为了这个过程,我们通常会定义一个方法来完成,这个方法叫做构造器。当然它的逆过程,叫做析构器,用于在实例被释放前做一些清理工作以及一此自定义化的处理。
为存储型属性设置初始值
类和结构体在生成实例那一刻,必须为所有的属性赋以特定的初始值。
要么在定义存储型属性的时候直接给个初始值,否则就必须在构造器里面指定一...
分类:
其他好文 时间:
2014-06-14 17:35:57
阅读次数:
248
Objective-C 支持的类型有两种:基本类型 和 类。基本类型,如同C 语言中的 int 类型一样,拿来就可以直接用。 而类在使用时,必须先创建一个对象,再为对象分配空间,接着做初始化和赋值。 类的初始化,需用类自身的方法 (类方法)。 代码中所创建的对象,不用后,还得记着释放。做了这么多铺垫...
分类:
其他好文 时间:
2014-06-14 13:47:58
阅读次数:
225