2019年_BATJ大廠面試題總結-滴滴篇

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章