重写通知中心类笔者重新设计了通知中心类,功能完全与系统的通知中心一致,但有着比系统通知中心更优秀的地方:1. 注册了通知中心不需要手动移除,如果注册对象自动释放了,在通知中心中注册的信息也会自动消失2. 传递的参数可以是任何的对象,包括数组,字典等等一切对象3. 基于NSObject的categor...
分类:
其他好文 时间:
2014-08-11 09:54:31
阅读次数:
348
在一个类的实例被释放之前,析构函数被立即调用。用关键字deinit来标示析构函数,类似于初始化函数用init来标示。析构函数只适用于类类型。
析构过程原理
Swift 会自动释放不再需要的实例以释放资源。如自动引用计数那一章描述,Swift 通过自动引用计数(ARC)处理实例的内存管理。通常当你的实例被释放时不需要手动地去清理。但是,当使用自己的资源时,你可能需要进行一些额外的清理...
分类:
编程语言 时间:
2014-08-07 09:50:09
阅读次数:
368
本文将介绍如何使用增强的catch 自动释放资源。
分类:
编程语言 时间:
2014-08-02 01:47:02
阅读次数:
195
Java的内存分为两种:一种是栈内存,一种是堆内存。 在函数中定义的一些基本类型变量和对象的引用都在函数的栈内存中分配。当在一个代码块中定义一个变量的时候,java就在栈中为其分配内存,当超过作用域的时候内存自动释放。 对内存用来存放new创建的对象和数组。在堆中分配的内存,由java虚拟机的垃圾回...
分类:
编程语言 时间:
2014-08-01 12:50:21
阅读次数:
181
在编码的过程中,有时候我们不得不借助锁同步来保证线程安全。synchronized关键字在上一篇博客中已经介绍;自从JDK5开始,添加了另一种锁机制:ReentrantLock。
二者的区别
1、lock是jdk5之后代码层面实现的,synchronized是JVM层面实现的。
2、synchronized在出现异常的时候能够自动释放锁,而lock必须在finally块中unlock()主动...
分类:
编程语言 时间:
2014-08-01 00:02:20
阅读次数:
319
??
1.内存四大区域
2.在程序中,变量的声明可以有多份,定义只能有一份
3.寄存器在cpu里面,没有地址
4.c语言内嵌汇编语言
5.auto变量
自动分配内存,自动释放内存。
6、栈的大小由编译器决定
修改栈的方式,右击项目à属性à配置属性à链接器à系统à堆栈保留大小
7.卡死cpu,卡死内存的程序...
分类:
其他好文 时间:
2014-07-28 16:29:53
阅读次数:
267
我们知道在程序运行过程中要创建大量的对象,和其他高级语言类似,在ObjC中对象时存储在堆中的,系统并不会自动释放堆中的内存(注意基本类型是由系统自己管理的,放在栈上)。如果一个对象创建并使用后没有得到及时释放那么就会占用大量内存。其他高级语言如C#、Java都是通过垃圾回收来(GC)解决这个问题的,...
分类:
移动开发 时间:
2014-07-27 09:43:12
阅读次数:
515
self.textView = [[[UITextView alloc] initWithFrame:self.view.frame] autorelease];//初始化大小并自动释放self.textView.textColor = [UIColor blackColor];//设置textvi...
分类:
其他好文 时间:
2014-07-25 02:30:04
阅读次数:
267
主要区别1、Lock能完成几乎所有synchronized的功能,并有一些后者不具备的功能,如公平锁、等待可中断、锁绑定多个条件等;2、synchronized是Java
语言层面的,是内置的关键字;Lock则是JDK5中出现的一个包,在使用时,synchronized
同步的代码块可以由JVM自动释放;Lock需要程..
分类:
编程语言 时间:
2014-07-21 12:46:35
阅读次数:
254
在静态存储区:内存的分配在程序执行前就分配好了,在程序运行的过程中一直存在,如全局变量,和static声明的变量。 在栈中:内存的分配是在程序的运行过程中被分配,函数结束后系统自动释放。 在堆中:即动态分配,一般用malloc和new分配内存的大小,程序员自己用free和delete自己释 放, 因...
分类:
编程语言 时间:
2014-07-20 22:04:42
阅读次数:
215