什么網(wǎng)站做批發(fā)零食的很多怎么在百度做免費(fèi)推廣
大家好,我是白露啊。
最近看到一個(gè)爽文帖,標(biāo)題就是——“小公司要求真高”。
事情是這樣的,一家的小公司在拿到簡(jiǎn)歷之后,HR直接對(duì)樓主說:“你不合適,簡(jiǎn)歷不行?!?言外之意就是嫌棄簡(jiǎn)歷單薄,看不上樓主。
萬萬沒想到。。。
然后還扎心的來了一句:“你們班或者年級(jí),有沒有合適的同學(xué)可以推薦?”
WTF?
你看不上我,我又不是你公司的人,還得幫你推薦?你這是打什么算盤🧮啊!
怎料樓主立馬以迅雷不及掩耳之勢(shì),甩了一個(gè)騰訊錄取的圖片。騰訊PCG,大家都知道那絕對(duì)是個(gè)重量級(jí)部門。
瞬間打臉,秒變爽文,網(wǎng)友紛紛驚呼。
還有之前面過這個(gè)家公司的網(wǎng)友也開始吐槽:
看來,天下“苦秦”久矣。。。
各位小伙伴們,求職之路雖然充滿荊棘和挑戰(zhàn),但請(qǐng)保持自信、積極,努力學(xué)習(xí)。都能像樓主一樣,最終迎來“大鵬展翅”的那一刻。期待看到你們更多的精彩故事和真實(shí)體驗(yàn),歡迎在評(píng)論區(qū)分享。好了,今天我們來看一篇外企Shoppe 的面試,如果不想看,可以直接跳轉(zhuǎn)到文末,有驚喜哦~
開始面試
面試官: 首先請(qǐng)做一下自我介紹。
求職者: 您好!非常感謝有這個(gè)機(jī)會(huì)參加Shopee的面試。我是一名軟件工程專業(yè)的畢業(yè)生,對(duì)后端開發(fā)非常感興趣。我有扎實(shí)的計(jì)算機(jī)科學(xué)基礎(chǔ),熟悉Java和Python等編程語言,也對(duì)分布式系統(tǒng)和網(wǎng)絡(luò)通信有一定的了解。在我的實(shí)習(xí)經(jīng)歷中,我參與了多個(gè)后端項(xiàng)目,包括API開發(fā)和數(shù)據(jù)庫優(yōu)化等。
面試官: 談?wù)勥M(jìn)程和線程的區(qū)別?為什么線程切換消耗資源小?它們是如何來使用多核CPU的?
求職者: 進(jìn)程是操作系統(tǒng)資源分配的基本單位,每個(gè)進(jìn)程都有自己獨(dú)立的地址空間和資源。線程是進(jìn)程中的執(zhí)行單元,是CPU調(diào)度的基本單位,一個(gè)進(jìn)程可以包含多個(gè)線程,線程之間共享進(jìn)程的資源,如內(nèi)存和文件描述符。線程切換消耗資源小是因?yàn)榫€程間共享部分狀態(tài),切換時(shí)不需要重新加載地址空間。在多核CPU上,操作系統(tǒng)可以將不同的進(jìn)程或線程分配到不同的核心上并行運(yùn)行,以此提高執(zhí)行效率。
面試官: 虛擬內(nèi)存是什么?
求職者: 虛擬內(nèi)存是計(jì)算機(jī)系統(tǒng)內(nèi)存管理的一種技術(shù)。它允許程序在運(yùn)行時(shí)擁有一致的地址空間,這個(gè)地址空間通常會(huì)比物理內(nèi)存大。它利用磁盤空間來擴(kuò)展可用內(nèi)存,通過內(nèi)存分頁和頁表來管理。這樣,即使物理內(nèi)存被占用完,程序仍然可以繼續(xù)運(yùn)行。
面試官: 描述一下手機(jī)下單流程的網(wǎng)絡(luò)請(qǐng)求過程?為什么是三次握手不能是兩次?世界上這么多機(jī)器是怎么知道我們的目標(biāo)服務(wù)器在哪里?
求職者: 當(dāng)手機(jī)發(fā)起下單請(qǐng)求時(shí),會(huì)經(jīng)過應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、鏈路層的多個(gè)步驟。三次握手是TCP/IP協(xié)議確保穩(wěn)定連接的一種機(jī)制,它通過三步驗(yàn)證雙方都準(zhǔn)備好進(jìn)行數(shù)據(jù)傳輸。兩次握手不能確認(rèn)雙方的接收與發(fā)送能力都是正常的。網(wǎng)絡(luò)請(qǐng)求通過DNS解析域名找到目標(biāo)服務(wù)器的IP地址,然后通過路由器根據(jù)IP地址來確定數(shù)據(jù)包的轉(zhuǎn)發(fā)路徑。不是通過MAC地址匹配,MAC地址通常只在同一局域網(wǎng)內(nèi)有效。
面試官: 連接斷開過程是怎樣的?沒有第四步會(huì)怎么樣?TCP和UDP的區(qū)別?
求職者: TCP連接的斷開是一個(gè)四次揮手的過程,確保雙方都沒有數(shù)據(jù)再發(fā)送。如果沒有第四步,就可能導(dǎo)致一方仍然等待關(guān)閉,從而造成資源的浪費(fèi)。TCP是面向連接的協(xié)議,提供可靠的數(shù)據(jù)傳輸,而UDP是無連接的,提供快速但不保證可靠性的數(shù)據(jù)傳輸。
面試官: HashMap的實(shí)現(xiàn)?紅黑樹的好處?
求職者: HashMap是基于哈希表的數(shù)據(jù)結(jié)構(gòu),通過計(jì)算鍵的哈希碼來存儲(chǔ)和檢索鍵值對(duì)。在Java中,當(dāng)HashMap中的某個(gè)桶里的元素過多時(shí),會(huì)將鏈表轉(zhuǎn)換為紅黑樹,以提高搜索效率。紅黑樹是一種自平衡的二叉搜索樹,它能在O(log n)的時(shí)間復(fù)雜度內(nèi)完成查找、插入和刪除操作,即使在最壞情況下也能保持較好的性能。
面試官: 來,寫道題吧:兩兩一組翻轉(zhuǎn)鏈表
求職者: 要兩兩翻轉(zhuǎn)鏈表,我們可以使用迭代的方法。我們遍歷鏈表,每次取出兩個(gè)節(jié)點(diǎn),并在局部進(jìn)行翻轉(zhuǎn),然后將翻轉(zhuǎn)后的子鏈表重新連接到主鏈表上。我們還需要一個(gè)指針來跟蹤上一對(duì)翻轉(zhuǎn)后的節(jié)點(diǎn),以確保鏈表的完整性。
面試官: 現(xiàn)在,請(qǐng)你嘗試寫出兩兩一組翻轉(zhuǎn)鏈表的代碼,并分析時(shí)間復(fù)雜度。
求職者: 好的。這是兩兩翻轉(zhuǎn)鏈表的一個(gè)可能的Java實(shí)現(xiàn):
class Solution {public ListNode swapPairs(ListNode head) {ListNode dummy = new ListNode(-1);dummy.next = head;ListNode prevNode = dummy;while (head != null && head.next != null) {ListNode firstNode = head;ListNode secondNode = head.next;prevNode.next = secondNode;firstNode.next = secondNode.next;secondNode.next = firstNode;prevNode = firstNode;head = firstNode.next; // jump to the next pair}return dummy.next;}
}
這段代碼的時(shí)間復(fù)雜度是O(n),其中n是鏈表中的節(jié)點(diǎn)數(shù)量,因?yàn)槲覀冃枰闅v整個(gè)鏈表來兩兩翻轉(zhuǎn)節(jié)點(diǎn)。