2019Android面试总结(二)

作者: 小的橘子 | 来源:发表于2019-03-17 23:25 被阅读23次

    网络

    1. 网络5层模型

    1. 物理层
      可以用光缆、电缆、双绞线、无线电波等方式
    2. 数据链路层
      网络层和物理层的通信,主要功能是如何在不可靠的物理线路上进行数据的可靠的传递.
    3. 网络层
      ip协议
    4. 传输层
      tcp协议
    5. 应用层
      http协议
    TCP/IP五层模型

    2. TCP/UDP区别

    • TCP传输控制协议:面向连接;使用全双工的可靠信道;提供可靠的服务,即无差错、不丢失、不重复且按序到达;拥塞控制、流量控制、超时重发、丢弃重复数据等等可靠性检测手段;面向字节流;每条TCP连接只能是点到点的;用于传输可靠性要求高的数据
    • UDP用户数据报协议:无连接;使用不可靠信道;尽最大努力交付,即不保证可靠交付;无拥塞控制等;面向报文;支持一对一、一对多、多对一和多对多的交互通信;用于传输可靠性要求不高的数据

    3. 谈谈TCP为什么要三次握手?为什么要四次挥手?

    TCP三次握手及四次挥手详解及常见面试题

    4. 响应状态码

    状态码由三位数字组成,第一位数字表示响应的类型,常用的状态码有五大类:

    • 1xx:表示服务器已接收了客户端请求,客户端可继续发送请求
    • 2xx:表示服务器已成功接收到请求并进行处理
      200 OK:表示客户端请求成功
    • 3xx:表示服务器要求客户端重定向
    • 4xx:表示客户端的请求有非法内容
      400 Bad Request:表示客户端请求有语法错误,不能被服务器所理解
      401 Unauthonzed:表示请求未经授权,该状态代码必须与 WWW-Authenticate 报头域一起使用
      403 Forbidden:表示服务器收到请求,但是拒绝提供服务,通常会在响应正文中给出不提供服务的原因
      404 Not Found:请求的资源不存在,例如,输入了错误的URL
    • 5xx:表示服务器未能正常处理客户端的请求而出现意外错误
      500 Internal Server Error:表示服务器发生不可预期的错误,导致无法完成客户端的请求
      503 Service Unavailable:表示服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常

    5. HTTP和TCP的区别

    • TCP是传输层协议,定义数据传输和连接方式的规范。通过三次握手建立连接、四次挥手释放连接。
    • HTTP是应用层协议,定义的是传输数据的内容的规范。HTTP的连接使用"请求-响应"方式。基于TCP协议传输,默认端口号是80。

    Fragment

    1. Fragment生命周期的变化:

    add(): onAttach()->…->onResume()。
    remove(): onPause()->…->onDetach()。
    replace(): 相当于旧Fragment调用remove(),新Fragment调用add()。
    show(): 不调用任何生命周期方法,调用该方法的前提是要显示的 Fragment已经被添加到容器,只是纯粹把Fragment UI的setVisibility为true。
    hide(): 不调用任何生命周期方法,调用该方法的前提是要显示的Fragment已经被添加到容器,只是纯粹把Fragment UI的setVisibility为false。
    detach(): onPause()->onStop()->onDestroyView()。UI从布局中移除,但是仍然被FragmentManager管理。
    attach(): onCreateView()->onStart()->onResume()。

    Fragment回退栈

    fragment的出栈操作是以事务的提交为单位的,而不是add或replace的次数

    屏幕适配

    1. 使用dp不直接使用px 代码设置需要dp到px的一个转换
    2. Drawable适配,不同dpi放置对应的图片,尽量使用矢量图,节省空间不失真
    3. 多使用带权重的布局,不使用absolutelayout
    4. 布局适配
      land

    View相关

    属性动画

    1. ObjectAnimator,ValuesAnimator

    ObjectAnimator会自动将TypeEvaluaror根据Interpolator产生的值设置到某个对象的属性上
    ValuesAnimator只会提供TypeEvaluator根据Interpolator产生的值,不会自动设置,需要我们在回调方法中进行设置

    2. TypeEvaluator,Interpolator

    1. TypeEvaluator时估值器,其会根据interpolator和起始终止值来产生值
      常用的TypeEvaluator有IntEvaluator,FloatEvaluator,ArgbEvaluator
    2. Interpolator时插值器,其会反应时间因子的变化,
      常用的有
    AccelerateDecelerateInterpolator 先加速最后减速
    AccelerateInterpolator 一直加速
    DecelerateInterpolator 一直减速
    AnticipateInterpolator 类似弹弓上的石子,先反向少许,再正向
    OvershootInterpolator 类似压气球的手,先运动至目标处并超过一些距离,然后反弹到目标位置
    AnticipateOvershootInterpolator 上两种的结合
    LinearInterpolator 匀速运动
    BounceInterpolator 类似自由落体
    

    相关文章

      网友评论

        本文标题:2019Android面试总结(二)

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