内存泄露在堆上分配的内存,没有及时释放掉,以便后面其它地方可以重用。在C/C++中,内存管理器不会帮你自动回收不再使用的内存。如果你忘了释放不再使用的内存,这些内存就不能被重用,就造成了所谓的内存泄露。一两处内存泄露通常不至于让程序崩溃,也不会出现逻辑上的错误,当然了,量变会产生质变,一旦内存泄露过...
                            
                            
                                分类:
其他好文   时间:
2014-08-31 17:07:41   
                                阅读次数:
153
                             
                    
                        
                            
                            
                                4.3.1. 创建动态数组
 
数组类型的变量有三个重要的限制:【数组长度固定不变】,【在编译时必须知道其长度】,【数组只在定义它的块语句内存在】。
实际的程序往往不能忍受这样的限制——它们需要在运行时动态地分配数组。
虽然数组长度是固定的,但动态分配的数组不必在编译时知道其长度,可以(通常也是)在运行时才确定数组长度。与数组变量不同,动态分配的数组将一直存在,直到程序显式释放它为...
                            
                            
                                分类:
编程语言   时间:
2014-08-31 15:50:51   
                                阅读次数:
311
                             
                    
                        
                            
                            
                                //释放暂时不使用的内存,共当前程序使用.
- (void)didReceiveMemoryWarning
{
    [super
didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
    //当收到内存警告时,移除当前没有在屏幕上显示的视图.
 ...
                            
                            
                                分类:
移动开发   时间:
2014-08-31 09:18:21   
                                阅读次数:
296
                             
                    
                        
                            
                            
                                1.1什么是内存管理内存管理是对计算机内存进行分配和使用的技术。内存管理主要存在于多 任务的操作系统中,由于内存资源极其有限,需要在不同的任务之间共享内存,内存管理的存在就是要高效、快速的非配内存,并在适当的时候回收和释放内存,以 保各个任务正常的执行。最常见的内存管理机制有:段式内存管理和页式内存...
                            
                            
                                分类:
系统相关   时间:
2014-08-31 06:03:20   
                                阅读次数:
306
                             
                    
                        
                            
                            
                                Android用LruCache来取代原来强引用和软引用实现内存缓存,因为据说自2.3以后Android将更频繁的调用GC,导致软引用缓存的数据极易被释放。
 
LruCache使用一个LinkedHashMap简单的实现内存的缓存,没有软引用,都是强引用。如果添加的数据大于设置的最大值,就删除最先缓存的数据来调整内存。他的主要原理在trimToSize方法中。需要了解两个主要的变量size和...
                            
                            
                                分类:
其他好文   时间:
2014-08-31 00:30:30   
                                阅读次数:
237
                             
                    
                        
                            
                            
                                1.1什么是内存管理
内存管理是对计算机内存进行分配和使用的技术。内存管理主要存在于多任务的操作系统中,由于内存资源极其有限,需要在不同的任务之间共享内存,内存管理的存在就是要高效、快速的非配内存,并在适当的时候回收和释放内存,以保各个任务正常的执行。最常见的内存管理机制有:段式内存管理和页式内存管理。
1.2内存中的地址
早期的16位计算中,寄存器的位宽只有16位,为了能访问到1M Bit...
                            
                            
                                分类:
系统相关   时间:
2014-08-30 23:11:40   
                                阅读次数:
483
                             
                    
                        
                            
                            
                                JavaScript事件对象
事件源对象 event.srcElement.tagName event.srcElement.type
捕获释放 event.srcElement.setCapture(); event.srcElement.releaseCapture();
事件按键 event.keyCode event.shiftKey event.altKey...
                            
                            
                                分类:
编程语言   时间:
2014-08-30 23:09:22   
                                阅读次数:
289
                             
                    
                        
                            
                            
                                1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/...
                            
                            
                                分类:
其他好文   时间:
2014-08-30 23:01:10   
                                阅读次数:
193
                             
                    
                        
                            
                            
                                构造函数可以抛出异常。C++标准指明析构函数不能、也不应该抛出异常。那么如果对象在运行期间出现了异常,C++异常处理模型有责任清除那些由于出现异常所导致的已经失效了的对象(也即对象超出了它原来的作用域),并释放对象原来所分配的资源,这就是调用这些对象的析构函数来完成释放资源的任务,所以从这个意义上说...
                            
                            
                                分类:
其他好文   时间:
2014-08-30 22:56:40   
                                阅读次数:
222