局部变量局部变量也成内部变量,在函数内部使用,不能被该函数外的代码使用函数调用结束后,局部变量所占的内存自动释放局部变量应该尽量定义在程序块的开头全局变量如果不初始化自动清0,局部变量如果不初始化会产生随机值;对整个程序都是可见的他不属于某个函数,而属于整个源文件一般在main()函数之前声明全局变...
分类:
编程语言 时间:
2015-07-29 22:43:53
阅读次数:
135
在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,...
分类:
编程语言 时间:
2015-07-28 22:48:49
阅读次数:
172
在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,...
分类:
编程语言 时间:
2015-07-27 18:29:01
阅读次数:
131
IDisposable接口定义:定义一种释放分配的资源的方法。 .NET平台在内存管理方面提供了GC(GarbageCollection),负责自动释放托管资源和内存回收的工作,但它无法对非托管资源进行释放,这时我们必须自己提供方法来释放对象内分配的非托管资源,比如你在对象的实现代码中使用了一个C....
oc小知识点:在c语言中汉子占三个字节oc中汉子和字符都是一个字节#include 和 #import 区别wimport 可以防止重复包含Foundation 把oc的库文件都包含过来@autoreleasepool 自动释放池NSLog 会自动换行NSLog 会自动输出时间项目信息NSLog 传...
分类:
其他好文 时间:
2015-07-24 20:28:43
阅读次数:
98
转载自:http://tieba.baidu.com/p/3427605546当您向一个对象发送一个autorelease消息时,Cocoa就会将该对象的一个引用放入到最新的自动释放池。它仍然是个正当的对象,因此自动释放池定义的作用域内的其它对象可以向它发送消息。当程序执行到作用域结束的位置时,自动...
分类:
其他好文 时间:
2015-07-23 09:25:44
阅读次数:
98
范围:要回收哪些区域
在JVM五种内存模型中,有三个是不需要进行垃圾回收的:程序计数器、JVM栈、本地方法栈。因为它们的生命周期是和线程同步的,随着线程的销毁,它们占用的内存会自动释放,所以只有方法区和堆需要进行GC。
前提:如何判断对象已死
所有的垃圾收集算法都面临同一个问题,那就是找出应用程序不可到达的内存块,将其释放,这里面得不可到达主要是指应用程序已经没有内存块的引用了, 在...
分类:
其他好文 时间:
2015-07-22 09:26:16
阅读次数:
183
OC对象使用了ARC,自动释放内存,但是CF中的对象没有ARC,必须要手动进行引用计数和内存释放.
两者对象之间的互相转换有三种形式:
1.__bridge:
直接转换,部改变对象的持有状况:
id obj = [NSObject new];
cfObject = (_bridge cfObject) obj;
//不改变对象持有状况,cf对象不能获得obj的引用.
id obc = (_...
分类:
其他好文 时间:
2015-07-21 17:19:27
阅读次数:
97
1、for与while相比for控制循环的变量只作用于for循环,执行完毕释放内存。比while节省内存2、重载函数名同,参数列表不同与返回值无关3、内存的划分:(1)寄存器。(2)本地方法区。(3)方法区。(4)栈内存。局部变量(5)堆内存。new出来的实体(数组、对象)4、栈,自动释放内存堆,j...
分类:
编程语言 时间:
2015-07-18 18:20:55
阅读次数:
171
java内存分为四部分:1)、栈区(stacksegment),由编译器自动分配释放,存放函数的参数值和局部变量的值等,具体方法执行结束之后,系统自动释放JVM内存资源;2)、堆区(heapsegment),一般由程序员分配释放,存放由new创建的对象和数组,jvm不定时查看这个对象,如果没有引用指...
分类:
编程语言 时间:
2015-07-17 09:32:22
阅读次数:
87