2020年最新阿里面試題整理附答案

關于epoll和select的區(qū)別,哪些說法是正確的?
【A】epoll和select都是I/O多路復用的技術,都可以實現同時監(jiān)聽多個I/O事件的狀態(tài)。
【B】epoll相比select效率更高,主要是基于其操作系統(tǒng)支持的I/O事件通知機制,而select是基于輪詢機制。
【C】epoll支持水平觸發(fā)和邊沿觸發(fā)兩種模式。
【D】select能并行支持I/O比較小,且無法修改。
答案:ABC
從innodb的索引結構分析,為什么索引的key長度不能太長? key 太長會導致一個頁當中能夠存放的 key 的數目變少,間接導致索引樹的頁數目變多,索引層次增加,從而影響整體查詢變更的效率。
MySQL的數據如何恢復到任意時間點?
恢復到任意時間點以定時的做全量備份,以及備份增量的 binlog 日志為前提?;謴偷饺我鈺r間點首先將全量備份恢復之后,再此基礎上回放增加的 binlog 直至指定的時間點。
輸入 ping IP 后敲回車,發(fā)包前會發(fā)生什么?
首先根據目標IP和路由表決定走哪個網卡,再根據網卡的子網掩碼地址判斷目的IP是否在子網內。如果不在則會通過ARP緩存查詢IP的網卡地址,不存在的話會通過廣播詢問目的IP的mac地址,得到后就開始發(fā)包了,同時mac地址也會被ARP緩存起來。
請解釋下為什么鹿晗發(fā)布戀情的時候,微博系統(tǒng)會崩潰,如何解決?
《 參考思路 》 A. 獲取微博通過 pull 方式還是 push 方式 B. 發(fā)布微博的頻率要遠小于閱讀微博 C. 流量明星的發(fā)微博,和普通博主要區(qū)分對待,比如在 sharding 的時候,也要考慮這個因素
現有一批郵件需要發(fā)送給訂閱顧客,且有一個集群(集群的節(jié)點數不定,會動態(tài)擴容縮容)來負責具體的郵件發(fā)送任務,如何讓系統(tǒng)盡快地完成發(fā)送?請詳述技術方案! A. 借助消息中間件,通過發(fā)布者訂閱者模式來進行任務分配 B. master-slave 部署,由 master 來分配任務 C. 不借助任何中間件,且所有節(jié)點均等。通過數據庫的 updatereturning,從而實現節(jié)點之間任務的互斥
有一批氣象觀測站,現需要獲取這些站點的觀測數據,并存儲到 Hive 中。但是氣象局只提供了 api 查詢,每次只能查詢單個觀測點。那么如果能夠方便快速地獲取到所有的觀測點的數據? A. 通過 shell 或 python 等調用 api,結果先暫存本地,最后將本地文件上傳到 Hive 中。 B. 通過 datax 的 httpReader 和 hdfsWriter 插件,從而獲取所需的數據。 C. 比較理想的回答,是在計算引擎的 UDF 中調用查詢 api,執(zhí)行UDF 的查詢結果存儲到對應的表中。一方面,不需要同步任務的導出導入;另一方面,計算引擎的分布式框架天生提供了分布式、容錯、并發(fā)等特性。
給定一個鏈表,刪除鏈表的倒數第 N 個節(jié)點,并且返回鏈表的頭結點。給定一個鏈表: 1->2->3->4->5, 和 n = 2. 當刪除了倒數第二個節(jié)點后,鏈表變?yōu)?1->2->3->5. 說明:給定的 n 保證是有效的。要求:只允許對鏈表進行一次遍歷。
參考答案
我們可以使用兩個指針而不是一個指針。第一個指針從列表的開頭向前移動 n+1n+1 步,而第二個指針將從列表的開頭出發(fā)?,F在,這兩個指針被 nn 個結點分開。我們通過同時移動兩個指針向前來保持這個恒定的間隔,直到第一個指針到達最后一個結點。此時第二個指針將指向從最后一個結點數起的第 nn 個結點。我們重新鏈接第二個指針所引用的結點的 next 指針指向該結點的下下個結點。
代碼示例 :
public ListNode removeNthFromEnd(ListNode head, int n) { ListNode dummy = new ListNode(0); dummy.next = head; ListNode first = dummy; ListNode second = dummy; // Advances first pointer so that the gap between first and second is n nodes apart for (int i = 1; i <= n + 1; i++) { first = first.next; } // Move first to the end, maintaining the gap while (first != null) { first = first.next; second = second.next; } second.next = second.next.next; return dummy.next; }
復雜度分析:
時間復雜度:O(L),該算法對含有 L 個結點的列表進行了一次遍歷。因此時間復雜度為 O(L)??臻g復雜度:O(1),我們只用了常量級的額外空間。
假如給你一個新產品,你將從哪些方面來保障它的質量?可以從代碼開發(fā)、測試保障、線上質量三個方面來保障。在代碼開發(fā)階段,有單元測試、代碼Review、靜態(tài)代碼掃描等;測試保障階段,有功能測試、性能測試、高可用測試、穩(wěn)定性測試、兼容性測試等;在線上質量方面,有灰度發(fā)布、緊急回滾、故障演練、線上監(jiān)控和巡檢等。
請評估一下程序的執(zhí)行結果?
public class SynchronousQueueQuiz { public static void main(String[] args) throws Exception { BlockingQueue<Integer> queue = new SynchronousQueue<>(); System. out .print(queue.offer(1) + " "); System. out .print(queue.offer(2) + " "); System. out .print(queue.offer(3) + " "); System. out .print(queue.take() + " "); System. out .println(queue.size()); } } A. true true true 1 3 B. true true true (阻塞) C. false false false null 0 D. false false false (阻塞)
參考答案 D
總結
以上所述是小編給大家介紹的2020年最新阿里面試題整理附答案,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
相關文章
- 這篇文章主要介紹了2020最新版MyBatis高頻面試題,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2020-02-25
- 這篇文章主要介紹了JVM面試題小結(2020最新版),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2020-02-21
- 這篇文章主要介紹了2020Java面試題最新(五鎖機制篇),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2020-02-12
- 這篇文章主要介紹了2020年12道高頻JavaScript手寫面試題及答案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編2020-01-06
- 這篇文章主要介紹了2020年JVM高頻率面試題整理,真是小編下了血本給大家整理出來的,值得大家收藏,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-09