1.MVC与MVVM区别是什么?
- MVC是将Model,View和Controller分离让彼此的职责 能够明确的分开,这样不论是改M,V,还是C,都可以确保另外两层可不用做任何修改,View和Model基本上是相关的,但他们并不是有直接的相依关系,而是由Controller去决定Model产生的资料,然后丢给View去做呈现,也就是说Controller是Model和View之间的协调者。
- MVVM的架构一样是M,V分离,但中间是以VM来串接,这个ViewModel比较像View的一个代理程式,他负责直接对Model做沟通,而View可以透过一些机制和ViewModel沟通以取得资料或将资料抛给Model做存取等工作,ViewModel也可以作为和外部系统的代理程式,不过它和MVC不同的地方,就是ViewModel和View的黏合度比较高,因为View必须透过ViewModel才可以取得Model,而ViewModel又必须处理来自View的通知讯息,所以虽然职责一样分明,但是却不想MVC那样可以扩展到整个系统原件都能用。
2.是否使用过XMPP,XMPP的实现原理
-xmpp是一个即时通讯的协议,他是定义好用于即时通信在网络传输格式的,比如登录,或缺好友列表等等的格式,XMPP 在网络传输的数据是XML格式
- XMPP是一个基于Socket的网络协议,目的是为了保存长链接,以实现即时通讯功能
- XMPP的客户端是使用一个XMPPFramework框架
- XMPP服务器是使用Openfire,一个开源服务器
- 假设客户端获取服务器发送过来的好友信息,客户端需要对XML进行解析,使用的解析框架的KissXML框架
3.TCP/IP协议、Socket协议和Http协议的区别
- 网络由上往下分为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
- IP协议对应于网络层,TCP协议对应于传输层,而Http协议对应于应用层,
- socket是对TCP/IP协议的封装和应用,socket本身不是协议,而是一个调用接口(API)。通过socket,我们才能使用TCP/IP协议。socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象
- http是应用层协议,主要解决如何包装数据。如果想要是传输的数据有意义,则必须使用应用层协议。web使用http协议作为应用层协议,以封装http文本信息,然后使用TCP/IP做传输层协议将它发到网络上。
4.什么是TCP连接的三次握手
-第一次握手:客户端发送syn(syn=j)包到数据库,并进入syn_send状态,等待服务器确定
- 第二次握手:服务器收到syn包,必须确认客户的syn(syn=j+1),同事自己也发送一个syn包(syn=k),此时服务器处于syn_recv状态
- 第三次握手:客户端收到服务器的syn包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入establish状态,完成三次握手。
5.在团队开发中svn发生冲突的解决方案
- (mc)mine-conflict,代表用我们的代码替换服务器的代码,本地的代码只保留我们自己写的
- (tc)theirs-conflict,代表用服务器代码替换我们的代码,本地的代码只保留服务器的,会自动删除我们的
- (p)postpone 自己手动解决。本地文件会同事保留服务器代码和本地代码