1.有alloc,new,copy创建出来的对象就必须有release,在类中是retain对oc类型对成员在该类对dealloc方法中也要release2.一旦对象直接有引用关系,那么就一定有retain,同时在主对象销毁时,也必须对其引用对对象release。但是对象引用时,在retain时 ....
分类:
其他好文 时间:
2015-05-16 23:18:51
阅读次数:
172
引用计数器每个OC对象都有自己的引用计数器,是一个整数表示对象被引用的次数,即现在有多少东西在使用这个对象。对象刚被创建时,默认计数器值为1,当计数器的值变为0时,则对象销毁。在每个OC对象内部,都专门有4个字节的存储空间来存储引用计数器。作用:判断对象要不要回收的唯一依据就是计数器是否为0,若不为...
分类:
其他好文 时间:
2015-04-20 16:30:08
阅读次数:
126
OC中对象销毁时会调用 dealloc 方法,此方法在实际开发中主要作用就是判断有无循环引用造成内存泄露。Swift中 deinit 可以实现 “dealloc” 的功能deinit {
println("没有循环引用")
}...
分类:
编程语言 时间:
2015-03-07 11:38:49
阅读次数:
1371
线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服务(不止一个不同的任务)就是一个需要解决的关键问题,其实这就是一些"池化资源"...
分类:
编程语言 时间:
2015-02-19 18:39:48
阅读次数:
303
### 对象销毁规则1 未被使用的函数返回值2 被let绑定的值, 在函数末尾销毁,除非被moved```let v = obj::new("a");other_fun(v); // v被move了, v在other_fun里面销毁,而不是当前函数的结尾```3 被替换的值将销毁```let mut...
分类:
其他好文 时间:
2015-01-19 19:02:16
阅读次数:
397
一,为什么需要序列化
当程序运行时,需要访问和处理数据,在面向对象编程中,这些数据通常保存在对象中,当程序关闭或对象销毁时,这些数据需要保存到某处以便日后重建对象时能够还原对象的状态。
将对象及其状态保存起来,就称作序列化(Serialization),最简单和最常见的一种情况就是将对象及其状态保存在文件中;
而反序列化是序列化的反向操作,将文件还...
分类:
其他好文 时间:
2014-12-28 15:36:13
阅读次数:
224
【ARC的特性】 ARC下,所有NSObject类型指针, 1. 默认为__strong类型 2. 可以显示的指定为__weak类型,__weak类型指针在所指向对象销毁后会自动置为nil 3. __autorelesing类型用于inout参数类型 ARC下,当一个函数返回一个NSObj...
分类:
移动开发 时间:
2014-11-05 14:19:29
阅读次数:
286
C++有析构函数这个东西,能够很好地在对象销毁前做一些释放外部资源的工作,但是java没有。Object.finalize()提供了与析构函数类似的机制,但是它不安全、会导致严重的内存消耗和性能降低,应该避免使用。best practice是:像java类库的IO流/数据库连接/socket,提供显示的资源释放接口,程序员使用完这些资源后,必须要显示释放。...
分类:
其他好文 时间:
2014-09-22 18:15:43
阅读次数:
204
前言 析构函数的作用在于完成对象销毁的一些“善后工作”,然而,某些不科学的设计会产生一些问题。 本文将说明其中的一种不科学设计 - "将异常处理机制设定在析构函数中" 会产生的问题,以及解决方案。问题描述 首先,请看一下一段代码: 1 class Widget { 2 public: 3 ...
分类:
其他好文 时间:
2014-08-27 21:52:08
阅读次数:
201
这篇文章是我的【iOS开发每日小笔记】系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧。该分类的文章,内容涉及的知识点可能是很简单的、或是用很短代码片段就能实现的,但在我看来它们可能会给用户体验、代码效率得到一些提升,或是之前自己没有接触过的技...
分类:
移动开发 时间:
2014-08-18 00:12:33
阅读次数:
401