安卓面试知识点简要整理

感觉很久没学习了,由于之前铺的太广,对于安卓的技术已经落后于人,现在开始记录知识点开始不可。

本文不算CSDN篇章,仅为个人日记

UDP、IP、TCP、HTTP、HTTPS的简单说明

网络分为物理层、数据层、网络层、传输层、会话层、应用层。
ip是网络层网际协议,根据协议号判断传输层给tcp还是udp。
udp是传输层数据报协议,提交小传输快,只针对数据,无需建立链接,不保证百分百收到。
tcp是传输层传输控制协议,需要三次握手进行连接,并保持长连接,四次握手断开,数据不丢失不重复。
http是应用层超文本传送协议,在tcp协议的基础上的实际应用,http的传输层百分百是tcp协议,但http协议完成后会断开连接,算是短连接,但可以并行多个。
https是在http的基础上加了一个ssl层,进行数据加密和身份认证,但需要CA证书,且比较耗电。
socket是应用层连接传输层的一个接口,可使用tcp或者udp,需要双方的ip和端口,服务器端不停轮询是否有客户端的消息,客户端需要发送心跳包保活。

个人理解网络传输流程:一个数据要发送,选择http的数据格式,通过tcp的传输方式,发送给ip的所在位置,存入ip所在物理设备中,再反过来一层层解析拿到数据。

MVC、MVP、MVVM的简单说明

MVC是Model、View、Control的简称,包含数据模型,页面视图和控制器,三者一对一相互依赖,页面显示调用控制器请求数据,控制器将数据存入数据模型数据模型将数据处理后通知页面更新。
但是如果页面有多种样式,该页面的数据模型就会增加很多数据处理的逻辑,造成逻辑复杂且无法复用。

MVP是Model、View、Presenter的简称,包含数据模型,页面视图和主持人,数据和页面完全分离,两者依靠主持人去沟通。不管页面再多种多样,都和数据模型没有关系,解决mvc的问题,但是却给presenter增加了很多工作量。

MVVM是Model、View、ViewModel的简称,包含数据模型,页面视图和视图模型,数据模型和页面通过一个绑定器绑定在一起,当数据变化时通过监听者的模式告诉视图模型,视图模型开始更新页面。绑定器承担了setdata的工作,给view和model都省了很多工作量。

个人理解无论哪种框架代码量都不会少,只是放的位置不一样,方便了多人协作开发、单元测试和后期修改,模块间的解耦可以让开发者专心开发自己负责的模块。
有一位面试官跟我说过,每个框架都有自己的优缺点,选择框架主要是看当前项目适合哪种,自己一定要明白每种框架的优缺点,但我感觉我了解的还是太浅薄,希望各位能在评论指出问题所在。

Kotlin的简单说明

:用来定义变量类型
?用来定义可为空
object为单例模式
lazy为延迟初始化或者懒加载
is代替了instanceOf
in代替了contains
when代替了switch
可以对类进行扩展,B继承A,以A的名义写新方法,C继承B,就可以以A的名义调用该方法,其实是伪装。

今天时间不够,先发改天再写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值