1.ArrayList和LinkedList區別
1、數據結構不同
ArrayList是Array(動態數組)的數據結構,LinkedList是Link(鏈表)的數據結構。
2、效率不同
當隨機訪問List(get和set操作)時,ArrayList比LinkedList的效率更高,因爲LinkedList是線性的數據存儲方式,所以需要移動指針從前往後依次查找。
當對數據進行增加和刪除的操作(add和remove操作)時,LinkedList比ArrayList的效率更高,因爲ArrayList是數組,所以在其中進行增刪操作時,會對操作點之後所有數據的下標索引造成影響,需要進行數據的移動。
3、自由性不同
ArrayList自由性較低,因爲它需要手動的設置固定大小的容量,但是它的使用比較方便,只需要創建,然後添加數據,通過調用下標進行使用;而LinkedList自由性較高,能夠動態的隨數據量的變化而變化,但是它不便於使用。
4、主要控件開銷不同
ArrayList主要控件開銷在於需要在lList列表預留一定空間;而LinkList主要控件開銷在於需要存儲結點信息以及結點指針信息。
2.INNODB的索引,倒排索引
參考:https://www.cnblogs.com/wutongblog/articles/10942890.html
http://www.uzzf.com/news/43242.html
3.Java虛擬機運行時數據區域
答案:https://blog.csdn.net/fanxing1964/article/details/79349824
4.OSI七層網絡模型以及網絡層有哪些協議
詳解:https://blog.csdn.net/zejunwzj/article/details/82455124
5.threadlocal的key底層是什麼?
底層實現主要是存有一個map,以線程作爲key,泛型作爲value,可以理解爲線程級別的緩存。每一個線程都會獲得一個單獨的map。
詳解:深入解析ThreadLocal底層實現原理
6.事務隔離級別及實現方式
答案:https://blog.csdn.net/sinat_33603657/article/details/89203360
詳解:https://www.cnblogs.com/Genesisx/p/9139175.html
7.手撕算法:複雜鏈表的複製
參考:https://blog.51cto.com/chen0547/2288050
https://www.cnblogs.com/edisonchou/p/4790090.html
8.手撕算法:合併兩個有序鏈表
答案:https://blog.csdn.net/geekmanong/article/details/51331764
9.場景題:一個城市對應多個ip,一共三個城市,請問給出一個ip怎麼快速定位是哪個城市的
參考:
相比之下H5要求瀏覽器支持,在移動設備上可以實現調用手機gps獲取位置信息,精確度很高。web api定位可以定位到城市,相對來說精確度不高,對比了百度,高德,淘寶,新浪的web api接口,發現都不能保證根據ip獲取完全正確的城市信息.相比之下百度的web api定位返回的信息包括城市和經緯度,所以用了百度。下面簡單介紹下幾個大廠的api定位.
(一)百度的 需要申請ak,且每天有次數限制,對於小項目完全夠了
http://api.map.baidu.com/location/ip?ak=ghghRYvNDQ15r&ip=112.64.68.169&coor=bd09ll
(二)淘寶的 沒有次數限制
(三)高德的 需要申請ak,有次數限制
restapi.amap.com/v3/ip?key=您的key&ip=223.104.107.108