Android

  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)