1.Java基础篇 - Paul9237/CommKnowledgeForAndroid GitHub Wiki

  1. 集合 1.1ArrayList LinkedList 时间复杂度 ArrayList 是线性表(数组) get() 直接读取第几个下标,复杂度 O(1) add(E) 添加元素,直接在后面添加,复杂度O(1) add(index, E) 添加元素,在第几个元素后面插入,后面的元素需要向后移动,复杂度O(n) remove()删除元素,后面的元素需要逐个移动,复杂度O(n) LinkedList 是链表的操作 get() 获取第几个元素,依次遍历,复杂度O(n) add(E) 添加到末尾,复杂度O(1) add(index, E) 添加第几个元素后,需要先查找到第几个元素,直接指针指向操作,复杂度O(n) remove()删除元素,直接指针指向操作,复杂度O(1) 1.2 forEach 过程中能否操作内部元素。 forEach 过程中进行 add 和 remove 会报错,因为会对比当前 size 和预期 size ,如果不一样,则抛出 ConcurrentModificationException,update不会。 ArrayList 线程不安全,Vector 线程安全,内部加了方法锁

  2. Http 状态码 https://baike.baidu.com/item/HTTP%E7%8A%B6%E6%80%81%E7%A0%81/5053660?fr=aladdin 200+ 成功,300+ 重定向,400+ 请求错误,500+ & 600+ 服务器错误。 常用:200 OK,204 不需要返回内容,400 Bad Request,404 Not Found,408 Request Timeout,500 服务器未知错误,一般是服务器代码报异常。