BAT大廠的高頻面試題匯總
根據(jù)國(guó)內(nèi)外論壇收集超過(guò) 1700 篇真實(shí)面經(jīng)整理的騰訊,阿里,字節(jié)跳動(dòng),Shopee,美團(tuán),滴滴高頻研發(fā)類面試題:
騰訊
# Java
▲ 38 HashMap 與 ConcurrentHashMap 的實(shí)現(xiàn)原理是怎樣的?ConcurrentHashMap 是如何保證線程安全的?
▲ 27 volatile 關(guān)鍵字解決了什么問(wèn)題,它的實(shí)現(xiàn)原理是什么?
▲ 26 Java 中垃圾回收機(jī)制中如何判斷對(duì)象需要回收?常見(jiàn)的 GC 回收算法有哪些?
▲ 26 synchronized 關(guān)鍵字底層是如何實(shí)現(xiàn)的?它與 Lock 相比優(yōu)缺點(diǎn)分別是什么?
▲ 24 簡(jiǎn)述 JVM 的內(nèi)存模型 JVM 內(nèi)存是如何對(duì)應(yīng)到操作系統(tǒng)內(nèi)存的?
▲ 20 集合類中的 List 和 Map 的線程安全版本是什么,如何保證線程安全的?
▲ 15 String 類能不能被繼承?為什么?
▲ 14 Java 線程和操作系統(tǒng)的線程是怎么對(duì)應(yīng)的?Java線程是怎樣進(jìn)行調(diào)度的?
▲ 11 簡(jiǎn)述 BIO, NIO, AIO 的區(qū)別
▲ 11 實(shí)現(xiàn)單例設(shè)計(jì)模式(懶漢,餓漢)
▲ 8 == 和 equals() 的區(qū)別?
▲ 8 簡(jiǎn)述 Spring AOP 的原理
▲ 6 簡(jiǎn)述 Synchronized,Volatile,可重入鎖的不同使用場(chǎng)景及優(yōu)缺點(diǎn)
▲ 2 簡(jiǎn)述 Java 的 happen before 原則
▲ 1 SpringBoot 是如何進(jìn)行自動(dòng)配置的?
# C++
▲ 16 C++ 中智能指針和指針的區(qū)別是什么?
▲ 15 簡(jiǎn)述 C++ 右值引用與轉(zhuǎn)移語(yǔ)義
▲ 14 簡(jiǎn)述 vector 的實(shí)現(xiàn)原理
▲ 14 簡(jiǎn)述 C++ 中智能指針的特點(diǎn),簡(jiǎn)述 new 與 malloc 的區(qū)別
▲ 13 C++ 11 有什么新特性
▲ 11 STL 中 vector 與 list 具體是怎么實(shí)現(xiàn)的?常見(jiàn)操作的時(shí)間復(fù)雜度是多少?
▲ 7 編譯時(shí)鏈接有幾種方式?靜態(tài)鏈接和動(dòng)態(tài)鏈接的區(qū)別是什么?
▲ 5 深拷貝與淺拷貝區(qū)別是什么?
▲ 3 類默認(rèn)的構(gòu)造函數(shù)是什么?
▲ 2 const、static 關(guān)鍵字有什么區(qū)別
▲ 2 只定義析構(gòu)函數(shù),會(huì)自動(dòng)生成哪些構(gòu)造函數(shù)?
▲ 1 簡(jiǎn)述 C++ 中內(nèi)存對(duì)齊的使用場(chǎng)景
▲ 1 簡(jiǎn)述 C++ 從代碼到可執(zhí)行二進(jìn)制文件的過(guò)程
▲ 1 簡(jiǎn)述 STL 中的 map 的實(shí)現(xiàn)原理
# 操作系統(tǒng)
▲ 34 進(jìn)程和線程之間有什么區(qū)別?
▲ 29 進(jìn)程間有哪些通信方式?
▲ 27 簡(jiǎn)述 socket 中 select 與 epoll 的使用場(chǎng)景以及區(qū)別,epoll 中水平觸發(fā)以及邊緣觸發(fā)有什么不同?
▲ 26 Linux 進(jìn)程調(diào)度中有哪些常見(jiàn)算法以及策略?
▲ 18 操作系統(tǒng)如何申請(qǐng)以及管理內(nèi)存的?
▲ 12 簡(jiǎn)單介紹進(jìn)程調(diào)度的算法
▲ 11 簡(jiǎn)述 Linux 系統(tǒng)態(tài)與用戶態(tài),什么時(shí)候會(huì)進(jìn)入系統(tǒng)態(tài)?
▲ 11 簡(jiǎn)述 LRU 算法及其實(shí)現(xiàn)方式
▲ 11 線程間有哪些通信方式?
▲ 8 簡(jiǎn)述同步與異步的區(qū)別,阻塞與非阻塞的區(qū)別
▲ 8 簡(jiǎn)述操作系統(tǒng)如何進(jìn)行內(nèi)存管理
▲ 7 簡(jiǎn)述操作系統(tǒng)中的缺頁(yè)中斷
▲ 3 簡(jiǎn)述操作系統(tǒng)中 malloc 的實(shí)現(xiàn)原理
▲ 2 BIO、NIO 有什么區(qū)別?怎么判斷寫文件時(shí) Buffer 已經(jīng)寫滿?簡(jiǎn)述 Linux 的 IO模型
▲ 1 進(jìn)程空間從高位到低位都有些什么?
# 網(wǎng)絡(luò)協(xié)議
▲ 41 簡(jiǎn)述 TCP 三次握手以及四次揮手的流程。為什么需要三次握手以及四次揮手?
▲ 32 RestFul 與 RPC 的區(qū)別是什么?RestFul 的優(yōu)點(diǎn)在哪里?
▲ 29 HTTP 與 HTTPS 有哪些區(qū)別?
▲ 26 RestFul 是什么?RestFul 請(qǐng)求的 URL 有什么特點(diǎn)?
▲ 23 一次 HTTP 的請(qǐng)求過(guò)程中發(fā)生了什么?
▲ 19 TCP 與 UDP 在網(wǎng)絡(luò)協(xié)議中的哪一層,他們之間有什么區(qū)別?
▲ 18 TCP 中常見(jiàn)的擁塞控制算法有哪些?
▲ 17 TCP 怎么保證可靠傳輸?
▲ 17 從系統(tǒng)層面上,UDP如何保證盡量可靠?
▲ 8 TCP 的 keepalive 了解嗎?說(shuō)一說(shuō)它和 http 的 keepalive 的區(qū)別?
▲ 8 簡(jiǎn)述 TCP 滑動(dòng)窗口以及重傳機(jī)制
▲ 8 簡(jiǎn)述 HTTP 1.0,1.1,2.0 的主要區(qū)別
▲ 7 簡(jiǎn)述 TCP 的 TIME_WAIT
▲ 5 HTTP 的方法有哪些?
▲ 4 簡(jiǎn)述 TCP 協(xié)議的延遲 ACK 和累計(jì)應(yīng)答
▲ 1 簡(jiǎn)述 TCP 的報(bào)文頭部結(jié)構(gòu)
▲ 1 簡(jiǎn)述 TCP 半連接發(fā)生場(chǎng)景
▲ 1 什么是 SYN flood,如何防止這類攻擊?
# 算法
▲ 29 10億個(gè)數(shù)中如何高效地找到最大的一個(gè)數(shù)以及最大的第 K 個(gè)數(shù)
▲ 21 最大子序和 (Leetcode)
▲ 20 爬樓梯 (Leetcode)
▲ 18 用 Rand7() 實(shí)現(xiàn) Rand10() (Leetcode)
▲ 15 AVL 樹和紅黑樹有什么區(qū)別?
▲ 15 給定一個(gè)包含 40億 個(gè)無(wú)符號(hào)整數(shù)的大型文件,使用最多 1G 內(nèi)存,對(duì)此文件進(jìn)行排序
▲ 14 合并兩個(gè)有序鏈表 (Leetcode)
▲ 14 路徑總和 (Leetcode)
▲ 14 如果通過(guò)一個(gè)不均勻的硬幣得到公平的結(jié)果?
▲ 13 實(shí)現(xiàn)快速排序
▲ 13 數(shù)組中的第 K 個(gè)最大元素 (Leetcode)
▲ 13 10億條數(shù)據(jù)包括 id,上線時(shí)間,下線時(shí)間,請(qǐng)繪制每一秒在線人數(shù)的曲線圖
▲ 13 刪除排序鏈表中的重復(fù)元素 (Leetcode)
▲ 11 有序鏈表插入的時(shí)間復(fù)雜度是多少?
▲ 10 Hash 表常見(jiàn)操作的時(shí)間復(fù)雜度是多少?遇到 Hash 沖突是如何解決的?
▲ 9 環(huán)形鏈表 (Leetcode)
▲ 6 常用的限流算法有哪些?簡(jiǎn)述令牌桶算法原理
▲ 4 簡(jiǎn)述常見(jiàn)的負(fù)載均衡算法
▲ 1 反轉(zhuǎn)鏈表 (Leetcode)
▲ 1 第一個(gè)只出現(xiàn)一次的字符 (Leetcode)
# 數(shù)據(jù)庫(kù)
▲ 58 MySQL 為什么使用 B+ 樹來(lái)作索引,對(duì)比 B 樹它的優(yōu)點(diǎn)和缺點(diǎn)是什么?
▲ 31 數(shù)據(jù)庫(kù)的事務(wù)隔離級(jí)別有哪些?各有哪些優(yōu)缺點(diǎn)?
▲ 24 什么是數(shù)據(jù)庫(kù)事務(wù),MySQL 為什么會(huì)使用 InnoDB 作為默認(rèn)選項(xiàng)
▲ 21 什么情況下會(huì)發(fā)生死鎖,如何解決死鎖?
▲ 21 簡(jiǎn)述樂(lè)觀鎖以及悲觀鎖的區(qū)別以及使用場(chǎng)景
▲ 19 聚簇索引和非聚簇索引有什么區(qū)別?什么情況用聚集索引?
▲ 18 簡(jiǎn)述臟讀和幻讀的發(fā)生場(chǎng)景,InnoDB 是如何解決幻讀的?
▲ 17 唯一索引與普通索引的區(qū)別是什么?使用索引會(huì)有哪些優(yōu)缺點(diǎn)?
▲ 11 Redis 如何實(shí)現(xiàn)延時(shí)隊(duì)列,分布式鎖的實(shí)現(xiàn)原理
▲ 9 簡(jiǎn)述 Redis 中如何防止緩存雪崩和緩存擊穿
▲ 9 簡(jiǎn)述 Redis 持久化中 rdb 以及 aof 方案的優(yōu)缺點(diǎn)
▲ 6 MySQL 的索引什么情況下會(huì)失效?
▲ 5 簡(jiǎn)述 MySQL 的主從同步機(jī)制,如果同步失敗會(huì)怎么樣?
▲ 5 簡(jiǎn)述數(shù)據(jù)庫(kù)中的 ACID 分別是什么?
▲ 4 Kafka 發(fā)送消息是如何保證可靠性的?
▲ 3 簡(jiǎn)述 Redis 中跳表的應(yīng)用以及優(yōu)缺點(diǎn)
▲ 1 假設(shè)Redis 的 master 節(jié)點(diǎn)宕機(jī)了,你會(huì)怎么進(jìn)行數(shù)據(jù)恢復(fù)?
▲ 1 假設(shè)建立聯(lián)合索引 (a, b, c) 如果對(duì)字段 a 和 c 查詢,會(huì)用到這個(gè)聯(lián)合索引嗎?
# 系統(tǒng)設(shè)計(jì)
▲ 9 電商系統(tǒng)中,如何實(shí)現(xiàn)秒殺功能?如何解決商品的超賣問(wèn)題?
▲ 1 假如明天是活動(dòng)高峰?QPS 預(yù)計(jì)會(huì)翻10倍,你要怎么做?
# 非技術(shù)
▲ 14 對(duì)加班有什么看法?
▲ 10 你的優(yōu)勢(shì)和劣勢(shì)是什么?
▲ 7 與同事溝通的時(shí)候,如果遇到?jīng)_突了如何解決?
▲ 1 最近一年內(nèi)遇到的最有挑戰(zhàn)的事情是什么?
# 前端
▲ 20 Vue 中雙向數(shù)據(jù)綁定的實(shí)現(xiàn)原理是怎樣的?
▲ 11 簡(jiǎn)述 Javascript 原型以及原型鏈
▲ 11 簡(jiǎn)述 Vue 的生命周期
▲ 11 簡(jiǎn)述瀏覽器的緩存機(jī)制
▲ 9 簡(jiǎn)述 diff 算法的實(shí)現(xiàn)機(jī)制和使用場(chǎng)景
▲ 9 簡(jiǎn)述虛擬 dom 實(shí)現(xiàn)原理
▲ 7 簡(jiǎn)述圖片的懶加載原理
▲ 6 簡(jiǎn)述 Javascript 中的防抖與節(jié)流的原理并嘗試實(shí)現(xiàn)
▲ 5 什么是閉包,什么是立即執(zhí)行函數(shù),它的作用是什么?簡(jiǎn)單說(shuō)一下閉包的使用場(chǎng)景
▲ 4 簡(jiǎn)述瀏覽題事件循環(huán)機(jī)制
▲ 4 localstorage 與 cookie 的區(qū)別是什么?
阿里
# Java
▲ 49 HashMap 與 ConcurrentHashMap 的實(shí)現(xiàn)原理是怎樣的?ConcurrentHashMap 是如何保證線程安全的?
▲ 41 Java 中垃圾回收機(jī)制中如何判斷對(duì)象需要回收?常見(jiàn)的 GC 回收算法有哪些?
▲ 34 簡(jiǎn)述 Synchronized,Volatile,可重入鎖的不同使用場(chǎng)景及優(yōu)缺點(diǎn)
▲ 30 synchronized 關(guān)鍵字底層是如何實(shí)現(xiàn)的?它與 Lock 相比優(yōu)缺點(diǎn)分別是什么?
▲ 26 JVM 中內(nèi)存模型是怎樣的,簡(jiǎn)述新生代與年老代的區(qū)別?
▲ 20 簡(jiǎn)述 Spring AOP 的原理
▲ 19 實(shí)現(xiàn)單例設(shè)計(jì)模式(懶漢,餓漢)
▲ 17 Java 是如何實(shí)現(xiàn)線程安全的
▲ 16 簡(jiǎn)述 ArrayList 與 LinkedList 的底層實(shí)現(xiàn)以及常見(jiàn)操作的時(shí)間復(fù)雜度
▲ 16 Java 類的加載流程是怎樣的?什么是雙親委派機(jī)制?
▲ 15 簡(jiǎn)述 Java 的反射機(jī)制
▲ 14 Java 中 sleep() 與 wait() 的區(qū)別
▲ 13 Java 線程池里的 arrayblockingqueue 與 linkedblockingqueue 的使用場(chǎng)景和區(qū)別
▲ 13 String 類能不能被繼承?為什么?
▲ 11 Java 中接口和抽象類的區(qū)別
▲ 11 JVM 是怎么去調(diào)優(yōu)的?簡(jiǎn)述過(guò)程和調(diào)優(yōu)的結(jié)果
▲ 10 hashcode 和 equals 方法的聯(lián)系
▲ 6 Spring MVC 的原理和流程
▲ 6 手寫生產(chǎn)者消費(fèi)者模型
▲ 5 Java 緩沖流 buffer 的用途和原理是什么?
# C++
▲ 16 簡(jiǎn)述 vector 的實(shí)現(xiàn)原理
▲ 11 簡(jiǎn)述 C++ 中智能指針的特點(diǎn),簡(jiǎn)述 new 與 malloc 的區(qū)別
▲ 10 簡(jiǎn)述 C++ 編譯的過(guò)程
▲ 3 C++ 中虛函數(shù)與純虛函數(shù)的區(qū)別
▲ 2 C++ 中什么是菱形繼承問(wèn)題?
▲ 1 C++ 的 vector 和 list中,如果刪除末尾的元素,其指針和迭代器如何變化?若刪除的是中間的元素呢?
▲ 1 C++ 的重載和重寫是如何實(shí)現(xiàn)的?
# 操作系統(tǒng)
▲ 36 進(jìn)程和線程之間有什么區(qū)別?
▲ 18 進(jìn)程間有哪些通信方式?
▲ 17 簡(jiǎn)述幾個(gè)常用的 Linux 命令以及他們的功能。
▲ 13 線程有多少種狀態(tài),狀態(tài)之間如何轉(zhuǎn)換
▲ 11 進(jìn)程有多少種狀態(tài)?
▲ 7 簡(jiǎn)述 socket 中 select 與 epoll 的使用場(chǎng)景以及區(qū)別,epoll 中水平觸發(fā)以及邊緣觸發(fā)有什么不同?
▲ 5 Linux 下如何排查 CPU 以及 內(nèi)存占用過(guò)多?
▲ 3 進(jìn)程通信中的管道實(shí)現(xiàn)原理是什么?
▲ 3 Linux 下如何查看 CPU 荷載,正在運(yùn)行的進(jìn)程,某個(gè)端口對(duì)應(yīng)的進(jìn)程?
▲ 2 如何調(diào)試服務(wù)器內(nèi)存占用過(guò)高的問(wèn)題?
▲ 2 Linux 如何查看實(shí)時(shí)的滾動(dòng)日志?
# 網(wǎng)絡(luò)協(xié)議
▲ 35 簡(jiǎn)述 TCP 三次握手以及四次揮手的流程。為什么需要三次握手以及四次揮手?
▲ 34 HTTP 與 HTTPS 有哪些區(qū)別?
▲ 24 TCP 與 UDP 在網(wǎng)絡(luò)協(xié)議中的哪一層,他們之間有什么區(qū)別?
▲ 21 一次 HTTP 的請(qǐng)求過(guò)程中發(fā)生了什么?
▲ 19 TCP 中常見(jiàn)的擁塞控制算法有哪些?
▲ 15 DNS 查詢服務(wù)器的基本流程是什么?DNS 劫持是什么?
▲ 11 Cookie和Session的關(guān)系和區(qū)別是什么?
▲ 7 TCP 怎么保證可靠傳輸?
▲ 4 TCP 中 SYN 攻擊是什么?如何防止?
▲ 2 TCP 四次揮手的時(shí)候 CLOSE_WAIT 的話怎么處理?
▲ 2 簡(jiǎn)述 WebSocket 是如何進(jìn)行傳輸?shù)?/span>
# 算法
▲ 33 10億個(gè)數(shù)中如何高效地找到最大的一個(gè)數(shù)以及最大的第 K 個(gè)數(shù)
▲ 19 兩個(gè) 10G 大小包含 URL 數(shù)據(jù)的文件,最多使用 1G 內(nèi)存,將這兩個(gè)文件合并,并找到相同的 URL
▲ 15 二叉樹的層序遍歷
▲ 12 常用的排序方式有哪些,時(shí)間復(fù)雜度是多少?
▲ 12 用 Rand7() 實(shí)現(xiàn) Rand10() (Leetcode)
▲ 11 使用遞歸及非遞歸兩種方式實(shí)現(xiàn)快速排序
▲ 10 實(shí)現(xiàn) LRU 算法,實(shí)現(xiàn)帶有過(guò)期時(shí)間的 LRU 算法
▲ 10 如何隨機(jī)生成不重復(fù)的 10個(gè)100 以內(nèi)的數(shù)字?
▲ 9 二叉樹的最近公共祖先 (Leetcode 236)
▲ 7 如何實(shí)現(xiàn)大數(shù)運(yùn)算
▲ 4 反轉(zhuǎn)鏈表 (Leetcode)
▲ 3 用棧實(shí)現(xiàn)隊(duì)列 (Leetcode)
▲ 2 1000臺(tái) 機(jī)器,每臺(tái)機(jī)器 1000個(gè) 文件,每個(gè)文件存儲(chǔ)了 10億個(gè) 整數(shù),如何找到其中最小的 1000個(gè) 值?
▲ 1 兩個(gè)文件包含無(wú)序的數(shù)字,數(shù)字的大小范圍是0-500w左右。如何求兩個(gè)文件中的重復(fù)的數(shù)據(jù)?
▲ 1 最長(zhǎng)公共子序列 (Leetcode)
▲ 1 鏈表倒數(shù)第K個(gè)數(shù) (Leetcode)
▲ 1 按序打印 (Leetcode)
# 數(shù)據(jù)庫(kù)
▲ 52 MySQL 為什么使用 B+ 樹來(lái)作索引,對(duì)比 B 樹它的優(yōu)點(diǎn)和缺點(diǎn)是什么?
▲ 33 數(shù)據(jù)庫(kù)的事務(wù)隔離級(jí)別有哪些?各有哪些優(yōu)缺點(diǎn)?
▲ 26 簡(jiǎn)述樂(lè)觀鎖以及悲觀鎖的區(qū)別以及使用場(chǎng)景
▲ 20 簡(jiǎn)述一致性哈希算法的實(shí)現(xiàn)方式及原理
▲ 18 簡(jiǎn)述臟讀和幻讀的發(fā)生場(chǎng)景,InnoDB 是如何解決幻讀的?
▲ 16 簡(jiǎn)述 Redis 持久化中 rdb 以及 aof 方案的優(yōu)缺點(diǎn)
▲ 14 什么情況下會(huì)發(fā)生死鎖,如何解決死鎖?
▲ 14 SQL優(yōu)化的方案有哪些,如何定位問(wèn)題并解決問(wèn)題?
▲ 9 Redis的緩存淘汰策略有哪些?
▲ 6 簡(jiǎn)述數(shù)據(jù)庫(kù)中什么情況下進(jìn)行分庫(kù),什么情況下進(jìn)行分表?
▲ 5 數(shù)據(jù)庫(kù)索引的實(shí)現(xiàn)原理是什么?
▲ 4 為什么 Redis 在單線程下能如此快?
▲ 3 數(shù)據(jù)庫(kù)查詢中左外連接和內(nèi)連接的區(qū)別是什么?
▲ 3 簡(jiǎn)述什么是最左匹配原則
▲ 2 數(shù)據(jù)庫(kù)的讀寫分離的作用是什么?如何實(shí)現(xiàn)?
▲ 2 簡(jiǎn)述 Redis 中跳表的應(yīng)用以及優(yōu)缺點(diǎn)
▲ 1 Redis 中,sentine l和 cluster 的區(qū)別和適用場(chǎng)景是什么?
# 系統(tǒng)設(shè)計(jì)
▲ 16 什么是 CAP ?什么是最終一致性?什么是冪等操作?
▲ 14 電商系統(tǒng)中,如何實(shí)現(xiàn)秒殺功能?如何解決商品的超賣問(wèn)題?
# 非技術(shù)
▲ 21 最近閱讀哪些技術(shù)書籍,遇到技術(shù)問(wèn)題是怎么去解決?
▲ 9 與同事溝通的時(shí)候,如果遇到?jīng)_突了如何解決?
▲ 8 你的優(yōu)勢(shì)和劣勢(shì)是什么?
▲ 2 團(tuán)隊(duì)合作溝通中遇到過(guò)什么問(wèn)題?
▲ 1 簡(jiǎn)單描述一下自己是怎么樣的人?
▲ 1 為什么要離開現(xiàn)在的公司?
▲ 1 目前為止,堅(jiān)持得最久一件事情是什么?
# 前端
▲ 11 promise 有哪些狀態(tài)?簡(jiǎn)述 promise.all 的實(shí)現(xiàn)原理
▲ 8 簡(jiǎn)述 CORS 的用途以及基本設(shè)置
▲ 8 簡(jiǎn)述 JWT 的原理和校驗(yàn)機(jī)制
▲ 4 localstorage 與 cookie 的區(qū)別是什么?
字節(jié)跳動(dòng)
# Java
▲ 20 Java 中垃圾回收機(jī)制中如何判斷對(duì)象需要回收?常見(jiàn)的 GC 回收算法有哪些?
▲ 18 synchronized 關(guān)鍵字底層是如何實(shí)現(xiàn)的?它與 Lock 相比優(yōu)缺點(diǎn)分別是什么?
▲ 17 hashmap 和 hashtable 的區(qū)別是什么?
▲ 15 HashMap 與 ConcurrentHashMap 的實(shí)現(xiàn)原理是怎樣的?ConcurrentHashMap 是如何保證線程安全的?
▲ 11 HashMap 實(shí)現(xiàn)原理,為什么使用紅黑樹?
▲ 9 hashMap 1.7 / 1.8 的實(shí)現(xiàn)區(qū)別
▲ 9 簡(jiǎn)述 Java的反射機(jī)制
▲ 6 Java 線程間有多少通信方式?
▲ 6 簡(jiǎn)述 Synchronized,volatile,可重入鎖的不同使用場(chǎng)景及優(yōu)缺點(diǎn)
▲ 6 Java 類的加載流程是怎樣的?什么是雙親委派機(jī)制?
▲ 5 簡(jiǎn)述常見(jiàn)的工廠模式以及單例模式的使用場(chǎng)景
▲ 5 JVM 中內(nèi)存模型是怎樣的,簡(jiǎn)述新生代與年老代的區(qū)別?
▲ 3 Java 常見(jiàn)鎖有哪些?ReetrantLock 是怎么實(shí)現(xiàn)的?
▲ 3 ThreadLocal 實(shí)現(xiàn)原理是什么?
▲ 3 簡(jiǎn)述 Spring 的初始化流程
▲ 3 簡(jiǎn)述生產(chǎn)者消費(fèi)者模型
▲ 1 Java 如何高效進(jìn)行數(shù)組拷貝
▲ 1 CAS 實(shí)現(xiàn)原理是什么?
▲ 1 成員變量和方法的區(qū)別?
▲ 1 Java 中接口和抽象類的區(qū)別
# C++
▲ 11 簡(jiǎn)述 C++ 右值引用與轉(zhuǎn)移語(yǔ)義
▲ 11 const、static 關(guān)鍵字有什么區(qū)別
▲ 11 C++的多態(tài)是如何實(shí)現(xiàn)的?
▲ 11 C++ 中解釋類模板和模板類的區(qū)別
▲ 8 C++ 中哪些函數(shù)不能被聲明為虛函數(shù)?
▲ 4 C++ 中虛函數(shù)與純虛函數(shù)的區(qū)別
▲ 3 簡(jiǎn)述 C++ 中內(nèi)存對(duì)齊的使用場(chǎng)景
▲ 1 構(gòu)造函數(shù)為什么不能被聲明為虛函數(shù)?
▲ 1 什么是內(nèi)存泄漏,怎么確定內(nèi)存泄漏?
# 操作系統(tǒng)
▲ 23 進(jìn)程間有哪些通信方式?
▲ 15 操作系統(tǒng)如何申請(qǐng)以及管理內(nèi)存的?
▲ 13 簡(jiǎn)述 socket 中 select 與 epoll 的使用場(chǎng)景以及區(qū)別,epoll 中水平觸發(fā)以及邊緣觸發(fā)有什么不同?
▲ 9 操作系統(tǒng)中,虛擬地址與物理地址之間如何映射?
▲ 8 I/O多路復(fù)用中 select, poll, epoll之間有什么區(qū)別,各自支持的最大描述符上限以及原因是什么?
▲ 6 簡(jiǎn)述操作系統(tǒng)中的缺頁(yè)中斷
▲ 5 進(jìn)程和線程之間有什么區(qū)別?
▲ 4 兩個(gè)線程交替打印一個(gè)共享變量
▲ 4 簡(jiǎn)述 mmap 的使用場(chǎng)景以及原理
▲ 3 Linux 中虛擬內(nèi)存和物理內(nèi)存有什么區(qū)別?有什么優(yōu)點(diǎn)?
▲ 2 什么時(shí)候會(huì)由用戶態(tài)陷入內(nèi)核態(tài)?
▲ 1 簡(jiǎn)述 traceroute 命令的原理
▲ 1 簡(jiǎn)述 Linux 零拷貝的原理
▲ 1 簡(jiǎn)單介紹進(jìn)程調(diào)度的算法
▲ 1 什么情況下,進(jìn)程會(huì)進(jìn)行切換?
▲ 1 簡(jiǎn)述自旋鎖與互斥鎖的使用場(chǎng)景
# 網(wǎng)絡(luò)協(xié)議
▲ 13 TCP 中常見(jiàn)的擁塞控制算法有哪些?
▲ 11 TCP 怎么保證可靠傳輸?
▲ 9 一次 HTTP 的請(qǐng)求過(guò)程中發(fā)生了什么?
▲ 9 簡(jiǎn)述常見(jiàn)的 HTTP 狀態(tài)碼的含義(301,304,401,403)
▲ 9 簡(jiǎn)述 TCP 三次握手以及四次揮手的流程。為什么需要三次握手以及四次揮手?
▲ 8 TCP的擁塞控制具體是怎么實(shí)現(xiàn)的?UDP有擁塞控制嗎?
▲ 8 簡(jiǎn)述 HTTPS 的加密與認(rèn)證過(guò)程
▲ 8 什么是跨域,什么情況下會(huì)發(fā)生跨域請(qǐng)求?
▲ 5 DNS 查詢服務(wù)器的基本流程是什么?DNS 劫持是什么?
▲ 4 簡(jiǎn)述對(duì)稱與非對(duì)稱加密的概念
▲ 4 簡(jiǎn)述 OSI 七層模型,TCP,IP 屬于哪一層?
▲ 4 HTTP 的方法有哪些?
▲ 3 簡(jiǎn)述 TCP 滑動(dòng)窗口以及重傳機(jī)制
▲ 1 TCP四次揮手過(guò)程以及所處狀態(tài),為什么還需要有 time_wait?
▲ 1 TCP 在什么情況下服務(wù)端會(huì)出現(xiàn)大量 CLOSE_WAIT ?
# 算法
▲ 22 給定 100G 的 URL 磁盤數(shù)據(jù),使用最多 1G 內(nèi)存,統(tǒng)計(jì)出現(xiàn)頻率最高的 Top K 個(gè) URL
▲ 19 10億個(gè)數(shù)中如何高效地找到最大的一個(gè)數(shù)以及最大的第 K 個(gè)數(shù)
▲ 17 合并兩個(gè)有序鏈表 (Leetcode)
▲ 17 64 匹馬,8 個(gè)賽道,找出前 4 匹馬最少需要比幾次;
▲ 14 實(shí)現(xiàn)快速排序
▲ 14 兩數(shù)相加 II (Leetcode 445)
▲ 12 搜索旋轉(zhuǎn)排序數(shù)組 (Leetcode)
▲ 12 判斷有環(huán)鏈表的環(huán)長(zhǎng)度 (Leetcode)
▲ 12 旋轉(zhuǎn)數(shù)組的最小數(shù)字 (Leetcode)
▲ 11 最大子序和 (Leetcode)
▲ 11 給定一個(gè) foo 函數(shù),60%的概率返回0,40%的概率返回1,如何利用 foo 函數(shù)實(shí)現(xiàn)一個(gè) 50% 返回 0 的函數(shù)?
▲ 11 搜索旋轉(zhuǎn)排序數(shù)組 II (Leetcode)
▲ 10 K 個(gè)一組翻轉(zhuǎn)鏈表 (Leetcode 25)
▲ 9 最長(zhǎng)連續(xù)子序列 (Leetcode)
▲ 9 二叉樹的最近公共祖先 (Leetcode 236)
▲ 8 最小棧 (Leetcode)
▲ 8 丑數(shù) II (Leetcode 264)
▲ 8 路徑總和 (Leetcode)
▲ 8 二叉樹的鋸齒形層次遍歷 (Leetcode)
▲ 7 旋轉(zhuǎn)數(shù)組 (Leetcode)
# 數(shù)據(jù)庫(kù)
▲ 22 MySQL 為什么使用 B+ 樹來(lái)作索引,對(duì)比 B 樹它的優(yōu)點(diǎn)和缺點(diǎn)是什么?
▲ 15 數(shù)據(jù)庫(kù)的事務(wù)隔離級(jí)別有哪些?各有哪些優(yōu)缺點(diǎn)?
▲ 13 Redis 序列化有哪些方式?
▲ 12 簡(jiǎn)述 Redis 持久化中 rdb 以及 aof 方案的優(yōu)缺點(diǎn)
▲ 12 簡(jiǎn)述 Redis 的哨兵機(jī)制
▲ 12 Redis 如何實(shí)現(xiàn)分布式鎖?
▲ 11 簡(jiǎn)述 Redis 中如何防止緩存雪崩和緩存擊穿
▲ 7 簡(jiǎn)述樂(lè)觀鎖以及悲觀鎖的區(qū)別以及使用場(chǎng)景
▲ 6 數(shù)據(jù)庫(kù)有哪些常見(jiàn)索引?數(shù)據(jù)庫(kù)設(shè)計(jì)的范式是什么?
▲ 4 Redis 有幾種數(shù)據(jù)結(jié)構(gòu)?Zset 是如何實(shí)現(xiàn)的?
▲ 4 Cookie和Session的關(guān)系和區(qū)別是什么?
▲ 4 Redis 中 key 的過(guò)期策略有哪些?
▲ 3 什么情況下會(huì)發(fā)生死鎖,如何解決死鎖?
▲ 3 并發(fā)事務(wù)會(huì)引發(fā)哪些問(wèn)題?如何解決?
▲ 2 簡(jiǎn)述數(shù)據(jù)庫(kù)中的 ACID 分別是什么?
▲ 2 MySQL 中 join 與 left join 的區(qū)別是什么?
▲ 1 簡(jiǎn)述 MySQL 三種日志的使用場(chǎng)景
▲ 1 模糊查詢是如何實(shí)現(xiàn)的?
# 系統(tǒng)設(shè)計(jì)
▲ 14 簡(jiǎn)述 CAP 理論
▲ 2 簡(jiǎn)述生產(chǎn)消費(fèi)者模式的流程
▲ 1 設(shè)計(jì)一個(gè)阻塞隊(duì)列
▲ 1 簡(jiǎn)述 MapReduce 的原理
▲ 1 停車場(chǎng)有有限個(gè)車位,有多個(gè)車來(lái)?yè)屲囄唬O(shè)計(jì)一個(gè)系統(tǒng)需要根據(jù)車輛進(jìn)入和離開停車場(chǎng)的時(shí)間進(jìn)行計(jì)費(fèi)
# 非技術(shù)
▲ 6 項(xiàng)目中最難的地方是哪里?你學(xué)習(xí)到了什么?
# 前端
▲ 25 手寫題庫(kù) https://github.com/Mayandev/fe-interview-handwrite
▲ 12 簡(jiǎn)述瀏覽器的渲染過(guò)程,重繪和重排在渲染過(guò)程中的哪一部分?
▲ 11 簡(jiǎn)述 diff 算法的實(shí)現(xiàn)機(jī)制和使用場(chǎng)景
▲ 9 什么是閉包,什么是立即執(zhí)行函數(shù),它的作用是什么?簡(jiǎn)單說(shuō)一下閉包的使用場(chǎng)景
▲ 9 promise 有哪些狀態(tài)?簡(jiǎn)述 promise.all 的實(shí)現(xiàn)原理
▲ 9 簡(jiǎn)述什么是 XSS 攻擊以及 CSRF 攻擊?
▲ 9 localstorage 與 cookie 的區(qū)別是什么?
▲ 8 Vue 中雙向數(shù)據(jù)綁定的實(shí)現(xiàn)原理是怎樣的?
▲ 8 簡(jiǎn)述 CSS 有哪些上下文類型?
▲ 5 簡(jiǎn)述 ES6 的新特性
▲ 5 了解過(guò) Gulp Grunt 嗎?簡(jiǎn)述他們的優(yōu)勢(shì)以及劣勢(shì)
▲ 4 Javascript 可以保存的最大數(shù)值是多少?
▲ 4 優(yōu)化首屏渲染的方式有哪幾種?
▲ 3 JavaScript 中的嚴(yán)格模式是什么,有什么作用?
Shopee
# Java
▲ 14 Java 中垃圾回收機(jī)制中如何判斷對(duì)象需要回收?常見(jiàn)的 GC 回收算法有哪些?
▲ 12 簡(jiǎn)述 ArrayList 與 LinkedList 的底層實(shí)現(xiàn)以及常見(jiàn)操作的時(shí)間復(fù)雜度
▲ 9 實(shí)現(xiàn)單例設(shè)計(jì)模式(懶漢,餓漢)
▲ 9 Java 類的加載流程是怎樣的?什么是雙親委派機(jī)制?
▲ 8 HashMap 與 ConcurrentHashMap 的實(shí)現(xiàn)原理是怎樣的?ConcurrentHashMap 是如何保證線程安全的?
▲ 8 HashMap 實(shí)現(xiàn)原理,為什么使用紅黑樹?
▲ 6 常用的排序方式有哪些,時(shí)間復(fù)雜度是多少?
▲ 3 volatile 關(guān)鍵字解決了什么問(wèn)題,它的實(shí)現(xiàn)原理是什么?
▲ 2 JVM 中內(nèi)存模型是怎樣的,簡(jiǎn)述新生代與年老代的區(qū)別?
▲ 2 簡(jiǎn)述 SortedSet 實(shí)現(xiàn)原理
▲ 2 簡(jiǎn)述使用協(xié)程的優(yōu)點(diǎn)
▲ 1 Java 編譯后的 .class 文件包含了什么內(nèi)容?
▲ 1 什么是公平鎖?什么是非公平鎖?
▲ 1 如何判斷一個(gè) Hash 函數(shù)好不好?
# 操作系統(tǒng)
▲ 10 進(jìn)程和線程之間有什么區(qū)別?
▲ 7 進(jìn)程通信中的管道實(shí)現(xiàn)原理是什么?
▲ 5 進(jìn)程間有哪些通信方式?
▲ 5 Linux 下如何排查 CPU 以及 內(nèi)存占用過(guò)多?
▲ 3 簡(jiǎn)述 Linux 虛擬內(nèi)存的頁(yè)面置換算法
▲ 3 簡(jiǎn)單介紹進(jìn)程調(diào)度的算法
▲ 2 LVS 的 NAT、TUN、DR 原理及區(qū)別
▲ 1 系統(tǒng)調(diào)用的過(guò)程是怎樣的?操作系統(tǒng)是通過(guò)什么機(jī)制觸發(fā)系統(tǒng)調(diào)用的?
# 網(wǎng)絡(luò)協(xié)議
▲ 19 HTTP 與 HTTPS 有哪些區(qū)別?
▲ 12 TCP 與 UDP 在網(wǎng)絡(luò)協(xié)議中的哪一層,他們之間有什么區(qū)別?
▲ 8 簡(jiǎn)述什么是 XSS 攻擊以及 CSRF 攻擊?
▲ 6 簡(jiǎn)述 TCP 中的擁塞控制與滑動(dòng)窗口機(jī)制
▲ 5 簡(jiǎn)述 TCP 三次握手以及四次揮手的流程。為什么需要三次握手以及四次揮手?
▲ 5 簡(jiǎn)述 HTTP 1.0,1.1,2.0 的主要區(qū)別
▲ 4 SSL握手流程為什么要使用對(duì)稱秘鑰?
▲ 3 簡(jiǎn)述 JWT 的原理和校驗(yàn)機(jī)制
▲ 3 TCP 的 keepalive 了解嗎?說(shuō)一說(shuō)它和 http 的 keepalive 的區(qū)別?
▲ 2 一次 HTTP 的請(qǐng)求過(guò)程中發(fā)生了什么?
▲ 2 DNS 查詢服務(wù)器的基本流程是什么?DNS 劫持是什么?
# 算法
▲ 8 快速排序的空間復(fù)雜度是多少?時(shí)間復(fù)雜度的最好最壞的情況是多少,有哪些優(yōu)化方案?
▲ 5 環(huán)形鏈表 (Leetcode)
▲ 5 用棧實(shí)現(xiàn)隊(duì)列 (Leetcode)
▲ 4 AVL 樹和紅黑樹有什么區(qū)別?
▲ 4 10億個(gè)數(shù)中如何高效地找到最大的一個(gè)數(shù)以及最大的第 K 個(gè)數(shù)
▲ 3 數(shù)組中的逆序?qū)?(Leetcode)
▲ 2 如何從一個(gè)數(shù)組輸出隨機(jī)數(shù)組
▲ 2 尋找旋轉(zhuǎn)排序數(shù)組中的最小值 (leetcode)
▲ 2 紅黑樹是怎么實(shí)現(xiàn)平衡的?它的優(yōu)點(diǎn)是什么?
▲ 1 和為 K 的子數(shù)組 (Leetcode)
# 數(shù)據(jù)庫(kù)
▲ 13 簡(jiǎn)述樂(lè)觀鎖以及悲觀鎖的區(qū)別以及使用場(chǎng)景
▲ 12 數(shù)據(jù)庫(kù)的事務(wù)隔離級(jí)別有哪些?各有哪些優(yōu)缺點(diǎn)?
▲ 11 為什么 Redis 在單線程下能如此快?
▲ 9 MySQL 為什么使用 B+ 樹來(lái)作索引,對(duì)比 B 樹它的優(yōu)點(diǎn)和缺點(diǎn)是什么?
▲ 5 什么情況下會(huì)發(fā)生死鎖,如何解決死鎖?
▲ 3 數(shù)據(jù)庫(kù)有哪些常見(jiàn)索引?數(shù)據(jù)庫(kù)設(shè)計(jì)的范式是什么?
▲ 3 簡(jiǎn)述 SQL 中左連接和右連接的區(qū)別
▲ 3 數(shù)據(jù)庫(kù)的讀寫分離的作用是什么?如何實(shí)現(xiàn)?
▲ 2 簡(jiǎn)述數(shù)據(jù)庫(kù)中的 ACID 分別是什么?
▲ 2 什么是數(shù)據(jù)庫(kù)事務(wù),MySQL 為什么會(huì)使用 InnoDB 作為默認(rèn)選項(xiàng)
▲ 2 Redis 中,sentine l和 cluster 的區(qū)別和適用場(chǎng)景是什么?
# 系統(tǒng)設(shè)計(jì)
▲ 8 簡(jiǎn)述 CAP 理論
# 非技術(shù)
▲ 7 你對(duì) Shopee 了解多少?你選擇 Shopee 的原因是什么?
▲ 1 你的老師和同學(xué)是如何評(píng)價(jià)你的?
▲ 1 最近在看什么書以及技術(shù)文章?
美團(tuán)
# Java
▲ 22 HashMap 與 ConcurrentHashMap 的實(shí)現(xiàn)原理是怎樣的?ConcurrentHashMap 是如何保證線程安全的?
▲ 22 Java 中垃圾回收機(jī)制中如何判斷對(duì)象需要回收?常見(jiàn)的 GC 回收算法有哪些?
▲ 19 Java 的線程有哪些狀態(tài),轉(zhuǎn)換關(guān)系是怎么樣的?
▲ 18 synchronized 關(guān)鍵字底層是如何實(shí)現(xiàn)的?它與 Lock 相比優(yōu)缺點(diǎn)分別是什么?
▲ 15 Java 怎么防止內(nèi)存溢出
▲ 13 簡(jiǎn)述常見(jiàn)的工廠模式以及單例模式的使用場(chǎng)景
▲ 12 簡(jiǎn)述 BIO, NIO, AIO 的區(qū)別
▲ 11 Java 類的加載流程是怎樣的?什么是雙親委派機(jī)制?
▲ 11 簡(jiǎn)述 ArrayList 與 LinkedList 的底層實(shí)現(xiàn)以及常見(jiàn)操作的時(shí)間復(fù)雜度
▲ 11 實(shí)現(xiàn)單例模式
▲ 9 volatile 關(guān)鍵字解決了什么問(wèn)題,它的實(shí)現(xiàn)原理是什么?
▲ 9 hashcode 和 equals 方法的聯(lián)系
▲ 9 什么是重寫和重載?
▲ 7 簡(jiǎn)述 JVM 的內(nèi)存模型 JVM 內(nèi)存是如何對(duì)應(yīng)到操作系統(tǒng)內(nèi)存的?
▲ 7 JVM 中內(nèi)存模型是怎樣的,簡(jiǎn)述新生代與年老代的區(qū)別?
▲ 5 簡(jiǎn)述裝飾者模式以及適配器模式
▲ 5 什么情況下會(huì)發(fā)生死鎖,如何解決死鎖?
▲ 4 簡(jiǎn)述 Java 中 final 關(guān)鍵字的作用
▲ 4 ThreadLocal 實(shí)現(xiàn)原理是什么?
# 操作系統(tǒng)
▲ 19 進(jìn)程和線程之間有什么區(qū)別?
▲ 12 進(jìn)程間有哪些通信方式?
▲ 4 多線程和多進(jìn)程的區(qū)別是什么?
▲ 3 為什么進(jìn)程切換慢,線程切換快?
# 網(wǎng)絡(luò)協(xié)議
▲ 18 TCP 怎么保證可靠傳輸?
▲ 17 HTTP 與 HTTPS 有哪些區(qū)別?
▲ 15 TCP 與 UDP 在網(wǎng)絡(luò)協(xié)議中的哪一層,他們之間有什么區(qū)別?
▲ 14 簡(jiǎn)述 TCP 三次握手以及四次揮手的流程。為什么需要三次握手以及四次揮手?
▲ 13 TCP長(zhǎng)連接和短連接有那么不同的使用場(chǎng)景?
▲ 10 HTTP 中 GET 和 POST 區(qū)別
▲ 8 TCP 與 UDP 在網(wǎng)絡(luò)協(xié)議中的哪一層,他們之間有什么區(qū)別?
▲ 4 什么是 ARP 協(xié)議?
# 算法
▲ 15 實(shí)現(xiàn)快速排序
▲ 15 簡(jiǎn)述 LRU 算法及其實(shí)現(xiàn)方式
▲ 14 按序打印 (Leetcode)
▲ 12 二叉樹的前序遍歷 (Leetcode)
▲ 11 數(shù)組中的第 K 個(gè)最大元素 (Leetcode)
▲ 11 旋轉(zhuǎn)圖像 (Leetcode)
▲ 11 劍指 Offer 10- II. 青蛙跳臺(tái)階問(wèn)題
▲ 11 鏈表倒數(shù)第K個(gè)數(shù) (Leetcode)
▲ 9 多數(shù)元素 (Leetcode)
▲ 7 用棧實(shí)現(xiàn)隊(duì)列 (Leetcode)
▲ 6 搜索旋轉(zhuǎn)排序數(shù)組 (Leetcode)
▲ 6 兩數(shù)相加
# 數(shù)據(jù)庫(kù)
▲ 19 簡(jiǎn)述樂(lè)觀鎖以及悲觀鎖的區(qū)別以及使用場(chǎng)景
▲ 17 簡(jiǎn)述 MySQL 常見(jiàn)索引數(shù)據(jù),介紹一下覆蓋索引
▲ 17 簡(jiǎn)述事務(wù)的四大特性
▲ 15 Redis 如何實(shí)現(xiàn)分布式鎖?
▲ 14 簡(jiǎn)述 Redis 的線程模型以及底層架構(gòu)設(shè)計(jì)
▲ 14 簡(jiǎn)述 Redis 持久化中 rdb 以及 aof 方案的優(yōu)缺點(diǎn)
▲ 14 為什么 Redis 在單線程下能如此快?
▲ 13 MySQL 為什么使用 B+ 樹來(lái)作索引,對(duì)比 B 樹它的優(yōu)點(diǎn)和缺點(diǎn)是什么?
▲ 13 簡(jiǎn)述臟讀和幻讀的發(fā)生場(chǎng)景,InnoDB 是如何解決幻讀的?
▲ 11 數(shù)據(jù)庫(kù)的事務(wù)隔離級(jí)別有哪些?各有哪些優(yōu)缺點(diǎn)?
▲ 11 簡(jiǎn)述 Redis 的過(guò)期機(jī)制和內(nèi)存淘汰策略
▲ 10 聚簇索引和非聚簇索引有什么區(qū)別?什么情況用聚集索引?
▲ 10 簡(jiǎn)述 Redis 的哨兵機(jī)制
▲ 10 簡(jiǎn)述 Redis 如何處理熱點(diǎn) key 訪問(wèn)
▲ 9 什么是數(shù)據(jù)庫(kù)事務(wù),MySQL 為什么會(huì)使用 InnoDB 作為默認(rèn)選項(xiàng)
▲ 8 MySQL 有哪些常見(jiàn)的存儲(chǔ)引擎?
▲ 4 簡(jiǎn)述 Redis 中常見(jiàn)類型的底層數(shù)據(jù)結(jié)構(gòu)
# 系統(tǒng)設(shè)計(jì)
▲ 17 電商系統(tǒng)中,如何實(shí)現(xiàn)秒殺功能?如何解決商品的超賣問(wèn)題?
▲ 14 簡(jiǎn)述 CAP 理論
# 非技術(shù)
▲ 11 下一份工作希望學(xué)習(xí)到什么?
▲ 11 項(xiàng)目中最難的地方是哪里?你學(xué)習(xí)到了什么?
▲ 9 團(tuán)隊(duì)合作溝通中遇到過(guò)什么問(wèn)題?
▲ 9 最近在看什么書嗎,有沒(méi)有接觸過(guò)什么新技術(shù)?
▲ 5 成長(zhǎng)過(guò)程中影響你最深的事件和人
# 前端
▲ 12 簡(jiǎn)述 Vue 的生命周期
▲ 12 手寫題庫(kù) https://github.com/Mayandev/fe-interview-handwrite
▲ 11 簡(jiǎn)述項(xiàng)目打包和發(fā)布的流程
▲ 11 簡(jiǎn)述 diff 算法的實(shí)現(xiàn)機(jī)制和使用場(chǎng)景
▲ 8 簡(jiǎn)述 react 的生命周期以及通信方式
▲ 8 什么是閉包,什么是立即執(zhí)行函數(shù),它的作用是什么?簡(jiǎn)單說(shuō)一下閉包的使用場(chǎng)景
▲ 7 簡(jiǎn)述瀏覽器的垃圾回收機(jī)制
▲ 7 移動(dòng)端適配有哪些方案?
▲ 7 簡(jiǎn)述瀏覽器的渲染過(guò)程,重繪和重排在渲染過(guò)程中的哪一部分?
▲ 6 MVC 模型和 MVVM 模型的區(qū)別
▲ 5 了解 xss 攻擊嗎?如何防止 xss 攻擊?
▲ 4 簡(jiǎn)述 React 中的 Effect Hook 機(jī)制
▲ 4 簡(jiǎn)述 React setstate 原理
▲ 3 簡(jiǎn)述強(qiáng)緩存與協(xié)商緩存的區(qū)別和使用場(chǎng)景
滴滴
# Java
▲ 8 什么是重寫和重載?
▲ 7 簡(jiǎn)述并實(shí)現(xiàn)工廠模式,工廠模式有什么常見(jiàn)問(wèn)題?
▲ 5 Java 常見(jiàn)鎖有哪些?ReetrantLock 是怎么實(shí)現(xiàn)的?
▲ 3 HTTP 中 GET 和 POST 區(qū)別
▲ 2 Java 有幾種基本數(shù)據(jù)類型,分別占多少字節(jié)?
▲ 1 Java 中 int 的最大值是多少?
▲ 1 簡(jiǎn)述封裝、繼承、多態(tài)的特性及使用場(chǎng)景
# 操作系統(tǒng)
▲ 1 malloc 創(chuàng)建的對(duì)象在堆還是棧中?
# 網(wǎng)絡(luò)協(xié)議
▲ 13 RestFul 是什么?RestFul 請(qǐng)求的 URL 有什么特點(diǎn)?
▲ 9 簡(jiǎn)述 HTTP 1.0,1.1,2.0 的主要區(qū)別
▲ 6 什么是跨域,什么情況下會(huì)發(fā)生跨域請(qǐng)求?
▲ 6 Cookie和Session的關(guān)系和區(qū)別是什么?
▲ 6 簡(jiǎn)述 JWT 的原理和校驗(yàn)機(jī)制
▲ 5 如何設(shè)計(jì) API 接口使其實(shí)現(xiàn)冪等性?
▲ 3 簡(jiǎn)述 TCP 滑動(dòng)窗口以及重傳機(jī)制
▲ 3 TCP 中 SYN 攻擊是什么?如何防止?
# 算法
▲ 11 實(shí)現(xiàn)快速排序
▲ 8 反轉(zhuǎn)鏈表 (Leetcode)
▲ 8 爬樓梯 (Leetcode)
▲ 8 劍指 Offer 10- II. 青蛙跳臺(tái)階問(wèn)題
▲ 5 快速排序的空間復(fù)雜度是多少?時(shí)間復(fù)雜度的最好最壞的情況是多少,有哪些優(yōu)化方案?
▲ 4 實(shí)現(xiàn)歸并排序
# 數(shù)據(jù)庫(kù)
▲ 11 聯(lián)合索引的存儲(chǔ)結(jié)構(gòu)是什么?
▲ 6 簡(jiǎn)述 Redis 中如何防止緩存雪崩和緩存擊穿
▲ 3 聚簇索引和非聚簇索引有什么區(qū)別?什么情況用聚集索引?
▲ 3 Redis 如何實(shí)現(xiàn)分布式鎖?
# 前端
▲ 22 手寫題庫(kù) https://github.com/Mayandev/fe-interview-handwrite
▲ 15 簡(jiǎn)述 Javascript 原型以及原型鏈
▲ 14 Vue 中雙向數(shù)據(jù)綁定的實(shí)現(xiàn)原理是怎樣的?
▲ 14 簡(jiǎn)述 Javascript 中的防抖與節(jié)流的原理并嘗試實(shí)現(xiàn)
▲ 12 簡(jiǎn)述 diff 算法的實(shí)現(xiàn)機(jī)制和使用場(chǎng)景
▲ 12 簡(jiǎn)述 CORS 的用途以及基本設(shè)置
▲ 12 簡(jiǎn)述輸入 URL 到瀏覽器顯示的流程
▲ 12 如何減少頁(yè)面渲染的時(shí)間?
▲ 10 簡(jiǎn)述瀏覽器的垃圾回收機(jī)制
▲ 10 簡(jiǎn)述瀏覽器的渲染過(guò)程,重繪和重排在渲染過(guò)程中的哪一部分?
▲ 10 簡(jiǎn)述 Javascript 中 this 的指向有哪些
▲ 9 簡(jiǎn)述 jsonp 的工作原理
▲ 9 簡(jiǎn)述 Javascript 事件冒泡和事件捕獲原理
▲ 8 如何解決 CSS 類名重名?
▲ 8 簡(jiǎn)述發(fā)布訂閱模式的實(shí)現(xiàn)方式以及原理
▲ 8 箭頭函數(shù)和普通函數(shù)的區(qū)別是什么?
▲ 8 簡(jiǎn)述圖片的懶加載原理
▲ 7 簡(jiǎn)述 Vue 的生命周期
▲ 7 簡(jiǎn)述常見(jiàn)異步編程方案 (promise, generator, async) 的原理
▲ 6 簡(jiǎn)述 Javascript 的柯里化與逆柯里化
來(lái)源:https://github.com/resumejob/interview-questions
