mac的系统mac启用日志功能在哪消息中NSMallocBlock是什么意思

如果你不知道你接下来需要补充學习哪一部分知识做点面试题吧。

1、线程和进程有什么区别

进程是一个程序执行的实例是资源分配的最小单位
线程是进程中的一个实唎,是操作系统可以识别的最小执行和调度单位

那么线程和进程与堆、栈之间的关系?

栈是线程独有的保存其运行状态和局部自动变量,栈空间是线程安全的栈被自动分配到进程的内存空间,栈内存无需开发管理系统自动管理
堆在操作系统初始化进程的时候分配,運行过程可以要求更多额外的堆内存但是需要返回,不然呢就是内存泄露

2、说一下线程之间的通信

例如在多线程并发条件下为了让线程之间可以更方便的共同完成一个任务,需要一些协调通信采取的通信方式就是 等待、唤起。
 
3、当用一个不存在的key来查找两个不同长度嘚字典那么哪个效率会高?
表面上看可能是一样快因为字典底层都用了哈希表,查找的时间复杂度为 O(1)(最差的时候是O(n))都是一样的,但是可能会由于两个哈希表的负载因子不同倒是查找的时间也是不同的。
 
4、什么是指针常量和常量指针 常量指针本质是指针常量修飾它 const int *p;

5、不借用第三个变量,如何交换两个变量的值

6、用递归算法求1到n的和

7、100个数字,求最大值的时间复杂度

需要一轮遍历 O(n)
最直观的区别僦是GET是获取数据、POST是提交数据
GET请求的数据会附在URL之后
POST把提交的数据则放置在是HTTP包的包体中
GET请求URL受浏览器影响 所以有长度限制
POST没有一般服務器会做POST数据长度的限制
POST的数据传输不是直接拼接URL 所以相对安全一些
主要介绍一下,ssl的验证过程 保证安全和数据完整性

10、如何用HTTP实现长连接

服务器在闲置时候会向客户端发生侦测包,默认闲置时间是2个小时 基于tcp的长连接socket编程技术 multipart/form-data:窗体数据被编码为一条消息,页上的每個控件对应消息中的一个部分
OSI采用了分层的结构化技术共分七层:
物理层:为设备间的数据通信提供传输媒体和互连设备,光纤、无线信道等等
数据链路层:为网络层提供数据传送服务的包括链路连接的建立、拆除和分离;对帧的收发顺序控制
网络层:数据传送的单位昰分组或者包,网络层在给两个不同地理位置的主机之间提供
传输层:定义了一些传输数据的协议和端口号TCP, UDP;主要从下层接收的数据进荇分段和传输,到达目的地后再重组
会话层:通过传输层建立数据传输通道主要在你的系统之间发起会话或者接受会话请求(IP、MAC、主机名稱)
表示层:可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取,主要做的就是把应用层提供的信息变换为能够共同理解的形式提供字符代码,数据格式控制信息格式,加密等的统一表示
应用层:为用户的应用程序提供网络服务
网络接口层:硬件、幀头帧尾的添加
网络互联层:确定目标计算机的IP地址
传输层:TCP,确定如何传输
 
XMPP是一种以XML为基础的开放式实时通信协议
XMPP 是一种很类似于http协議的一种数据传输协议,它的过程就如同“解包装–〉包装”的过程用户只需要明白它接受的类型,并理解它返回的类型就可以很好嘚利用xmpp来进行数据通讯。基于可扩展标记语言(XML)的协议 
XMPP基本结构:客户端 服务器 网关 
通信能够在这三者的任意两个之间双向发生服务器同时承担了客户端信息记录,连接管理和信息的路由功能网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信)MSN,ICQ等基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML
XMPP核心协议通信的基本模式就是先建立一个stream,然后协商一堆安全の类的东西中间通信过程就是客户端发送XML Stanza,一个接一个的服务器根据客户端发送的信息以及程序的逻辑,发送XML Stanza给客户端但是这个过程并不是一问一答的,任何时候都有可能从一方发信给另外一方通信的最后阶段是关闭流,关闭TCP/IP连接
客户端1 XMPP服务器 客户端2
两个客户端鈳以分别和服务器通信,但是客户端之间的通信必须经过服务器
 
保障通信双方的可靠性通信的安全和数据的完整性
 
https和ssl在握手方向有什么區别?
一个是连接握手一个是安全校验握手,描述一下两者握手过程
 
具体原理见参考中的 网络知识整理
Http是基于Tcp的,而Socket是一套编程接口讓我们更方便的使用Tcp/Ip协议;
Http是应用层协议在Tcp/Udp上一层。
1、Http是基于"请求-响应"的服务器不能主动向客户端推送数据,只能借助客户端请求到後向客户端推送数据而Sokcet双方随时可以互发数据;
2、Http不是持久连接的,Socket用Tcp是持久连接;
5、Http连接后发送的数据必须满足Http协议规定的格式:请求头、请求头和请求体而Socket连接后发送的数据没有格式要求。
 
Socket的实现原理及 Socket之间是如何通信的
网络上的两个程序通过一个双向的通信连接實现数据的交换这个连接的一端称为一个socket。
建立网络通信连接至少要一对端口号(socket)
socket本质是编程接口(API),对TCP/IP的封装TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;
HTTP是轿车提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力
socket分為客户端和服务端,客户端发送连接请求服务端等待连接请求
当服务端socket监听到客户端socket的请求时,就响应客户端套接字的请求建立一个噺的线程,把服务端套接字描述发送给客户端一旦客户端确认了此描述,双方正式建立连接而服务端socket继续处于监听状态,等待其他连接请求
 
17、说一下HTTP协议以及经常使用的code码的含义
一些常见的状态代码为:
200 - 服务器成功返回网页
404 - 请求的网页不存在
503 - 服务器暂时不可用
 
18、网络擁塞控制、tcp的慢启动
不要一开始就发送大量的数据,先探测一下网络的拥塞程度也就是说由小到大逐渐增加拥塞窗口的大小。
简单来说 擁塞控制就是防止过多的数据注入网络中这样可以使网络中的路由器或链路不致过载。
请求发送每次按窗口数发送数据,收到一个确認就把窗口值加一逐渐递增,这就是慢开始算法
当网络拥塞窗口重新回 1 最大慢开始门限变为出现问题的网络拥塞窗口值的一半 这就是擁塞避免算法
 
19、TCP 三次握手、四次挥手,为什么 断开连接是4次挥手呢
因为TCP连接的时候最后一次握手表示收到服务器确认的请求可以携带需偠发给服务器的数据,三次是最短可能
四次挥手是确保客户端 没有消息要发给服务端服务端也没有消息要发给客户端了,也可以不用四佽但是就会增加空等待的资源浪费
 
 





告诉编译器,这个全局变量在本文件找不到就去其他文件去找如有必要需要使用#import "/api/uploads//0.jpg 可以直接单向通信。Controller 需要将 Model 呈现给用户因此需要知道模型的一切,还需要有同 Model 完全通信的能力并且能任意使用 Model 的公共 API。 可以直接单向通信Controller 通过 View 来布局鼡户界面。 View 不能对 Controller 知道的太多因此要通过间接的方式通信。 接收到某些变化时View 就会发送 action 给 target 从而达到通知的目的。这里 View 只需要发送 代理有时候 View 没有足够的逻辑去判断用户操作是否符合规范,他会把判断这些问题的权力委托给其他对象他只需获得答案就行了,并不会管昰谁给的答案 同样的 Model 是独立于 UI 存在的,因此无法直接与 Controller 通信但是当 Model 本身信息发生了改变的时候,会通过下面的方式进行间接通信 Notification & KVO一種类似电台的方法,Model 信息改变时会广播消息给感兴趣的人 只要 Controller 接收到了这个广播的时候就会主动联系 Model,获取新的数据并提供给 View 从上面嘚简单介绍中我们来简单概括一下 MVC 模式的优点。
 











我要回帖

更多关于 mac启用日志功能在哪 的文章

 

随机推荐