在" .NET的堆和栈01,基本概念、值类型内存分配"中,了解了"堆"和"栈"的基本概念,以及值类型的内存分配。我们知道:当执行一个方法的时候,值类型实例会在"栈"上分配内存,而引用类型实例会在"堆"上分配内存,当方法执行完毕,"栈"上的实例由操作系统自动释放,"堆"上的实例由.NET Framew...
分类:
Web程序 时间:
2014-07-19 21:35:17
阅读次数:
341
写在前面用自己的话解释清楚~智能指针是什么,可分为哪几种类型,各有什么特点,解决了什么问题,怎么解决的?什么是智能指针?智能指针是C++中的一个概念,主要是通过引用计数的方式,解决动态内存的自动释放问题(类似于Java、Python中的垃圾回收)。主要解决程序常见的两个问题:动态的申请的内存没有释放...
分类:
其他好文 时间:
2014-07-19 15:12:31
阅读次数:
352
在" .NET的堆和栈01,基本概念、值类型内存分配"中,了解了"堆"和"栈"的基本概念,以及值类型的内存分配。我们知道:当执行一个方法的时候,值类型实例会在"栈"上分配内存,而引用类型实例会在"堆"上分配内存,当方法执行完毕,"栈"上的实例由操作系统自动释放,"堆"上的实例由.NET Framew...
分类:
Web程序 时间:
2014-07-16 17:37:37
阅读次数:
337
在" .NET的堆和栈01,基本概念、值类型内存分配"中,了解了"堆"和"栈"的基本概念,以及值类型的内存分配。我们知道:当执行一个方法的时候,值类型实例会在"栈"上分配内存,而引用类型实例会在"堆"上分配内存,当方法执行完毕,"栈"上的实例由操作系统自动释放,"堆"上的实例由.NET Framew...
分类:
Web程序 时间:
2014-07-16 13:58:27
阅读次数:
339
1、C中内存分为四个区 栈:用来存放函数的形参和函数内的局部变量。由编译器分配空间,在函数执行完后由编译器自动释放。 堆:用来存放由动态分配函数(如malloc)分配的空间。是由程序员自己手动分配的,并且必须由程序员使用free释放。如果忘记用free释放,会导致所分配的空间一 直占着不放,...
分类:
编程语言 时间:
2014-07-11 08:53:21
阅读次数:
333
1.autorelease方法的基本作用 给对象发送一条autorelease消息, 会将对象放到一个自动释放池中 当自动释放池被销毁时,会对池子里面的所有对象做一次release操作 会返回对象本身 调用完autorelease方法后,对象的计数器不变autorelease的好处 :不用再关心对象...
分类:
其他好文 时间:
2014-07-10 16:35:51
阅读次数:
205
C语言和Lua天生有两大隔阂:一、C语言是静态数据类型,Lua是动态数据类型二、C语言需要程序员管理内存,Lua自动管理内存为了跨越世俗走到一起,肯定需要解决方案。解决第一点看上去比较容易,C语言中有union。可是第二点呢?万一C语言正引用着Lua的一个值,Lua自动释放了怎么办?所以就有了一种比...
分类:
编程语言 时间:
2014-07-09 21:57:05
阅读次数:
343
1.在OC中,每个对象都有一个保留计数,创建时每个对象都有一个初始值为1的保留计数,释放时,保留计数都为02.创建(自动释放的)对象+(Car *)car{ Car *myCar = [[Car alloc] init]; return [myCar autorelease];}3.创建已保留属.....
分类:
移动开发 时间:
2014-07-09 19:59:04
阅读次数:
158
OC内存管理的基础知识/**//*当对一个对象autorelease时,会将该对象放到离它最近的自动释放池,当自动释放池将要销毁时,会对自动释放池中的对象发送release消息,让对象的引用计数减1,(切记,是将对象的引用计数减1,而不是回收空间。)//*//***如果相对一个对象做copy操作..
分类:
移动开发 时间:
2014-07-09 08:16:54
阅读次数:
291
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。 在堆中分...
分类:
编程语言 时间:
2014-07-07 10:38:38
阅读次数:
198