copy

作者: caohuienjoy | 来源:发表于2016-07-12 21:02 被阅读0次

    什么是ARC技术?与GC是否相同?

    字数1041阅读0评论0喜欢0

    ARC 是Automatic Reference Counting的简称,我们称之为自动引用计数,是IOS5之后推出的内存管理的新特性,本质上还是使用引用计数来管理对象,只是在编写代码时,不需要

    想对象发送release或者autorelease方法,也不需要调用DellOC方法,编译器会在合适的位置自动给用户生成release消息,GC

    的全称是Garbage collection,内存垃圾回收机制,ARC比GC性能好。

    iOS中是否支持垃圾回收机制

    iOS开发只支持手动内存管理与ARC,Mac开发支持GC垃圾回收机制,10.8之后弃用了GC,推荐使用ARC

    内存中的堆区和栈区的差别

    栈区有编译器自动分配释放,存放方法的参数值,局部变量的值等,堆区一般有程序员分配与释放,若不释放,则内存溢出

    strong与weak,_unsafe_unretained与weak的区别

    1.strong

    是强引用,weak是弱引用,在ARC中,使用strong告诉编译器帮助我们自动插入retain,weak是普通赋值相当于手动管理内存的

    assign.

    2._unsafe_unretained与weak功能一致,区别在于当之下你给的对象销毁后,weak会将变量置为nil,防止调用野指针

    ARC存在内存泄漏吗

    ARC中如果内存管理不当的话,同样会存在内存泄漏,列入:ARC中也会循环引用导致内存泄漏,OC对象与CoreFoundation类之间桥接时,管理不当也会产生内存泄漏

    自动释放池是什么:如何而工作?

    自动释放池是NSAutorelease累的一个实例,当想一个对象发送autorelease消息时,该对象会自动入池,等待池销毁时,将会向池中的所有对象发送一条release消息,释放对象

    为什么delegate属性都是assign而不是retain

    防止循环引用,以至于对象无法得到正确的释放

    iOS开发中数据持久性,有哪几种?

    plist文件写入,对象归档,sqlite数据库,coredata

    什么是KVC和KVO?以及他们之间的关系是什么

    1.KVC是一种简介访问对象实例变量的机制,该机制可以不通过存取方法就可以访问对象的实例变量

    2.KVO是一种能使得对象获取到其他对象属性变化的通知机制。

    3.实现KVO键值观察模式,,被观察的对象必须使用KVC键值编码来修改它的实例变量,这样擦能被观察者观察到,因此KVC是KVC的基础或者来说

    KVO的实现是建立在KVC的基础之上的

    简书常见的设计模式:单例,代理,观察者,工厂

    内存管理在dealloc方法中,用release方法好还是用self.xxx=nil好,

    使用self.xxx好,因为小调用了release方法,而且还将变量设置为nil,这样就更安全的释放对象,防止野指针调用

    线程与进程的区别和联系

    一般的应用程序是单个进程,也有多进程,进程是个静态的容器,里面容乃了很多歌线程,线程是一系列方法的线性执行路径

    什么是TCP链接的三次握手

    1.客户端发送syn包到服务器,并进入SYN_SEND状态,等待服务器确认

    2.服务器收到syn包,必须确认客户的SYN,同事自己也发送一个SYN包,客户端收到服务器的SYN+ACK包,此时服务器进入SYN_RECV状态

    3.客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手

    相关文章

      网友评论

          本文标题:copy

          本文链接:https://www.haomeiwen.com/subject/lmfhjttx.html