Android

作者: 合拍v | 来源:发表于2022-04-26 23:07 被阅读0次
    1. 排序算法
      https://www.cnblogs.com/onepixel/articles/7674659.html
    image.png
    1. TCP三次握手与四次挥手
      https://www.cnblogs.com/jainszhang/p/10641728.html

    序号:表示发送的数据字节流,确保TCP传输有序,对每个字节编号
    确认序号:发送方期待接收的下一序列号,接收成功后的数据字节序列号加 1。只有ACK=1时才有效。
    ACK:确认序号的标志,ACK=1表示确认号有效,ACK=0表示报文不含确认序号信息
    SYN:连接请求序号标志,用于建立连接,SYN=1表示请求连接
    FIN:结束标志,用于释放连接,为1表示关闭本方数据流


    image.png
    image.png
    • 为什么三次握手和四次挥手?
      三次握手时,服务器同时把ACK和SYN放在一起发送到了客户端那里。
      四次挥手时,当收到对方的 FIN 报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方是否现在关闭发送数据通道,需要上层应用来决定,因此,己方 ACK 和 FIN 一般都会分开发送。
    • 为什么客户端最后还要等待2MSL?
      客户端需要保证最后一次发送的ACK报文到服务器,如果服务器未收到,可以请求客户端重发,这样客户端还有时间再发,重启2MSL计时。
    1. HTTP响应码
      https://blog.csdn.net/weixin_43984157/article/details/120021418
    image.png
    1. JVM内模型和GC
      https://www.jianshu.com/p/76959115d486
    2. sp跨进程共享数据
      https://www.jianshu.com/p/8cd96874c127"
    image.png
    1. Activity启动模式
      https://blog.csdn.net/weixin_44870139/article/details/112734363

    2. Java多线程
      https://blog.csdn.net/weixin_44797490/article/details/91006241

    image.png
    1. HashMap
      https://blog.csdn.net/qq_36711757/article/details/80394272
    • 底层实现是 链表数组,JDK 8 后又加了 红黑树
    • 实现了 Map 全部的方法
    • key 用 Set 存放,所以想做到 key 不允许重复,key 对应的类(一般是String)需要重写 hashCode 和 equals 方法
    • 允许空键和空值(但空键只有一个,且放在第一位)
    • 元素是无序的,而且顺序会不定时改变(每次扩容后,都会重新哈希,也就是key通过哈希函数计算后会得出与之前不同的哈希值,这就导致哈希表里的元素是没有顺序,会随时变化的,这是因为哈希函数与桶数组容量有关,每次结点到了临界值后,就会自动扩容,扩容后桶数组容量都会乘二,而key不变,那么哈希值一定会变)
    • 插入、获取的时间复杂度基本是 O(1)(前提是有适当的哈希函数,让元素分布在均匀的位置)
    • 遍历整个 Map 需要的时间与数组的长度成正比(因此初始化时 HashMap 的容量不宜太大)
    • 两个关键因子:初始容量、加载因子
    • HashMap不是同步,HashTable是同步的,但HashTable已经弃用,如果需要线程安全,可以用synchronizedMap,例如 Map m = Collections.synchronizedMap(new HashMap(...));
    1. Hybrid开发
      https://segmentfault.com/a/1190000015678155

    Native技术与 Web技术混合开发的移动应用,基于 JSBridge。

    1. WebView内存泄漏
      https://blog.csdn.net/CSDN_LQR/article/details/115370719
    • 不要使用 xml 方式创建,而是使用代码把 WebView 给 new 出来
    • 不要让 WebView 持有对 Activity/Fragment 的 Context 引用(核心)
    • 销毁时,停止 WebView 的加载,并从父控件中将其移除
    1. Service
      https://www.jianshu.com/p/4194a352d40f
      两种启动方式和生命周期
      image.png
    2. ContentProvider
      https://www.jianshu.com/p/ea8bc4aaf057

    Android 四大组件之一,进程间进行数据交互 & 共享,即跨进程通信。

    1. 广播
      https://www.jianshu.com/p/ca3d87a4cdf3
    2. Handler机制
      https://blog.csdn.net/luoyingxing/article/details/86500542
      https://www.jianshu.com/p/9fe944ee02f7
    3. Activity生命周期
      https://www.jianshu.com/p/b1ff03a7bb1f
    4. 事件分发机制
      https://www.jianshu.com/p/38015afcdb58

    汇总

    https://blog.csdn.net/Gaga246/article/details/123049841
    https://mp.weixin.qq.com/s/mMoBTv_4FwdZcegQY5rtvw

    相关文章

      网友评论

          本文标题:Android

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