1.Java基础篇 - Paul9237/CommKnowledgeForAndroid GitHub Wiki
-
集合 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 线程安全,内部加了方法锁
-
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 服务器未知错误,一般是服务器代码报异常。