文档章节

面试题02

鹿微微鹿
 鹿微微鹿
发布于 2016/05/12 20:21
字数 1245
阅读 97
收藏 3
    • 9.理解单例模式并且用OC实现:

    • 单例模式就是使得类中的一个对象成为系统中唯一实例,它提供了对类的对象所提供资源的全局访问点,因此需要用一种只允许生成对象类的唯一实例的机制
      ```Object-c
      static User user = nil;
      +(id)shareUser{
      @synchronized(self){
      if(user == nil){
      user = [[User alloc]init];
      }
      }
      return user;
      }
      //这是在拷贝对象时防止重复创建
      -(id)copyWithZone:(NSZone 
      )zone{
      return user1;
      }
      //这是在retain对象时防止重复创建,当然在ARC开启时可省略这个
      -(id)retain{
      return user1;
      }
      //在release时什么都不做,因为一共就一个实例,不重复引用,所以不能release
      -(oneway void)release{

}
//在autorelease时,返回实例,在ARC下客省略
-(void)autorelease{
return user1;
}
//返回的时无符号整型,即大于0的数字,在ARC下可省略
-(NSUInteger)retainCount{
return UINT_MAX;
}
@end


###10.事件是如何传递的,简述事件响应链机制
  网址:http://www.jianshu.com/p/6f2cc4b1f5a1
```Object-c
  事件的传递过程是由硬件->操作系统->当前活跃的应用程序(   UIApplication)->UIWindow->->UIView
详细过程:
1> 当用户触发了一个事件,由硬件检测到,传递给操作系统,操作系统将这个事件打包成一个UIEvent,其次将UIEvent传递个点前活跃的应用,即传递给了UIApplication。
2> 接着就是应用内部的传递,首先UIApplication将事件传递给UIWindow,UIWindow调用hitTest方法检测事件。
hitTest方法内部做了三件事:1.检测UIView能否交互,hidden是否等于NO,alpha > 0.01; 2.触摸点是否发生在自己身上,即触摸点是否在自己的frame内;3. 按添加顺序逆向遍历自己的子视图,让子视图调用hitTest方法,查看是否能查找到一个比自己更适合处理这个事件的UIView,如此往复,最终找到一个,或者没有找到一个UIView返回。找到,UIApplicatio将事件传递给对应的UIView进行处理,没找到,就石沉大海

11. 什么是TCP的三次握手,四次挥手

TCP三次握手的过程如下:
1.客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
2.服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。
3.客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。
ACK表示Acknowledgment Number字段有意义
SYN表示SYN报文(在建立TCP连接的时候使用
三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。

建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的
四次挥手:
1.某个应用进程首先调用close,称该端执行“主动关闭”(active close)。该端的TCP于是发送一个FIN分节,表示数据发送完毕。

接收到这个FIN的对端执行 “被动关闭”(passive close),这个FIN由TCP确认。 注意:FIN的接收也作为一个文件结束符(end-of-file)传递给接收端应用进程,放在已排队等候该应用进程接收的任何其他数据之后,因为,FIN的接收意味着接收端应用进程在相应连接上再无额外数据可接收。
一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致它的TCP也发送一个FIN。 4.接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN。[1] 既然每个方向都需要一个FIN和一个ACK,因此通常需要4个分节。

12iOS 数据持久化的方式

网址:http://www.jianshu.com/p/e5ffd35eb59a

总结一下iOS中几种比较常用的数据存储方式
属性列表(plist)
偏好设置(preference)
NSKeyedArchiver(归档)
SQLite3
Core Data
沙盒目录结构:应用程序包(hq):包含所有的资源文件和可执行文件
 - Documents:保存应用运行时所生成的需要持久化的数据,iTunes同步设备时会备份该目录
 - Library Caches:保存应用运行时所生成的需要持久化的数据  iTunes同步设备时不会备份  一般存储体积大、不需要备份非重要数据
- Library Preferences:保存应用所有的偏好设置,liOS的Settings(设置)应用会在该目录中查找应用的设置信息,iTunes同步设备时会备份该目录
- Temp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时不会备份该目录

© 著作权归作者所有

共有 人打赏支持
鹿微微鹿
粉丝 8
博文 116
码字总数 71882
作品 0
程序员
最新iOS面试必看题视频教程(附大神简历要素)

本文是由尚学堂iOS学院总结的ios开发者在求职时会遇到的一些面试题 ,并通过实际代码演练将课程详尽的讲解出来,希望对学习ios或从事ios开发行业的朋友有所帮助。 001尚学堂iOS面试题命名规范...

2846613430
2016/04/12
388
0
华为2018届校园招聘笔试题目以及相应代码分享 软件开发岗位

华为2018届校园招聘笔试 时间20170712 笔试题目 01 括号匹配 //01 括号匹配 define CRTSECURENOWARNINGS /*括号匹配 给定一个字符串,里边可能包含“()”、“[]”、“{}”三种括号,请编写程...

lizi_stdio
2017/08/03
0
0
2018 前端面试准备

前端面试常见问题按知识点分类整理 前端面试常考问题整理,按模块知识点分类,持续完善中... Front-end-Developer-Questions by Modules and knowledge 前端面试经典问题:CSS 中居中的几种方...

掘金官方
2017/12/14
0
0
MYSQL之SQL高级运用(帮助你高效率编程)

小编说:这些知识常出现在面试题,但是实用价值很高。。其实也就是SQL的高级篇罢了,多用在统计方面,将行数据合并成列数据。希望读者能举一反三,灵活运用。 1.一道SQL语句面试题,关于gro...

idea_biu
2012/11/20
0
0
民工哥公众号linux系统学习线路图大全

民工哥公众号linux系统学习线路图大全 <-----------点击链接进入 友侃有笑公众号Linux学习路线图 1、基础篇 Linux 基础优化配置 Linux系统根目录结构介绍 linux系统重要子目录介绍 Linux文件...

民工哥
2017/08/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

00.编译OpenJDK-8u40的整个过程

前言 历经2天的折腾总算把OpenJDK给编译成功了,要说为啥搞这个,还得从面试说起,最近出去面试经常被问到JVM的相关东西,总感觉自己以前学的太浅薄,所以回来就打算深入学习,目标把《深入理...

凌晨一点
27分钟前
0
0
python: 一些关于元组的碎碎念

初始化元组的时候,尤其是元组里面只有一个元素的时候,会出现一些很蛋疼的情况: def checkContentAndType(obj): print(obj) print(type(obj))if __name__=="__main__": tu...

Oh_really
昨天
1
2
jvm crash分析工具

介绍一款非常好用的jvm crash分析工具,当jvm挂掉时,会产生hs_err_pid.log。里面记录了jvm当时的运行状态以及错误信息,但是内容量比较庞大,不好分析。所以我们要借助工具来帮我们。 Cras...

xpbob
昨天
65
0
Qt编写自定义控件属性设计器

以前做.NET开发中,.NET直接就集成了属性设计器,VS不愧是宇宙第一IDE,你能够想到的都给你封装好了,用起来不要太爽!因为项目需要自从全面转Qt开发已经6年有余,在工业控制领域,有一些应用...

飞扬青云
昨天
1
0
我为什么用GO语言来做区块链?

Go语言现在常常被用来做去中心化系统(decentralised system)。其他类型的公司也都把Go用在产品的核心模块中,并且它在网站开发中也占据了一席之地。 我们在决定做Karachain的时候,考量(b...

HiBlock
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部