天天看點

春招實習_學而思_一面/二面/HR面+offer

5.15 14:30 一面

1. 二進制轉十進制會嗎 10.2, 0.6 --> 後面會進入一個死循環

2. 計算機網絡的協定了解嗎,簡單介紹一下TCP和UDP,

3. TCP的粘包問題怎麼解決的,使用的字元串存下來的,怎麼區分兩個包

4. 程序間的通訊方式有哪些,線程之間通訊呢 -- > 程序間的通訊方式有信号,套接字,管道,消息隊列,共享記憶體,信号量, -- > 線程之間的話, 加鎖機制,條件變量,信号量,

5.了解什麼設計模式呢,說一下代理設計模式 --> 我說了動态代理的Proxy和CGLib的兩種代理實作方式

6. HTTP是無狀态協定,那伺服器怎麼判斷哪個使用者是哪個的呢 --> cookie 和 Session

7. 怎麼通過session id找到session ---> 我回答sessionId應該是session的版本号或者是session的一個唯一辨別,通過這個唯一辨別就可以找到對應的session

如果cookie被禁用了,那還能通過session id 找到對應的session

8. 對MVC模式的了解

9. 怎麼把項目部署到雲伺服器上,說一下流程

10. 是使用域名加端口号直接通路的嗎,如果端口号被禁用了怎麼辦

11. git是使用指令行的方式來通路的嗎,還是使用的IDE    --> 剛學git的時候用的指令行,後來做項目使用的IDE內建git, 這樣開發效率更高

12. 說一下MySQL資料庫增删改查的語句, explain 的作用

13. 有哪些存儲引擎,各自的優缺點

14. 如果一個字段有單列索引,那麼對這字段進行查詢一定會命中到索引嗎,-- > 我說是,--> 他說不一定,如果這個, 要用force index才可以

15. 反問:

部門主要使用什麼語言--> C++, Go, Java, PHP(據說有個PHP的牛人在他們部門,是以PHP的架構設計的特别好,性能和GO相當,服務端開發用Java不多,隔壁部門用web開發比較多)

面試官很輕切,不會的問題不會刁難,會耐心的解答,基本上都是鼓勵的話,面試體驗感很好,

面試總結,遇到自己不會的問題不要慌,不要着急否認自己,嘗試思考一下,可以回答一個猜測的答案,這樣面試官會覺得你比較能處理問題

5.19 16:00 二面

1. 平時間會逛github嗎 --> 不太經常逛,主要看CSDN最新的部落格

2. 項目中遇到的問題 --> 項目太簡單,沒什麼難點,隻能強行扯一些文法問題

3. spring cloud了解嗎

4.  怎麼建立一個線程池

4. 介紹一下垃圾回收算法

5. NIO和BIO

6. 程序和線程的聯系和差別

7. 協程了解嗎

協程是一種使用者态的輕量級線程,協程不是由作業系統核心管理,而是完全由使用者程式所控制,這樣帶來的好處就是性能得到了很大的提升,不會像線程切換那樣消耗資源。協程可以了解為可以暫停執行的函數。它擁有自己的寄存器上下文和棧。協程排程切換時,将寄存器上下文和棧儲存到其他地方,在切回來的時候,恢複先前儲存的寄存器上下文和棧,直接操作棧則基本沒有核心切換的開銷,可以不加鎖的通路全局變量,是以上下文的切換非常快。

8. 輸入url後的一系列過程

9. tcp的三次握手的過程

10. https了解嗎,---> 他說https的速度是http的

11. http3了解嗎 --> 沒了解過,他說是在udp的基礎加了一個可靠傳輸

12. http2的特點:多路複用,頭部壓縮,服務推送

13. 反問求建議:

14. 對kafka了解嗎 -- > 說了一下基本概念 和基本架構

15. kafka的高可用這麼實作的 --> 分區,加上備份

16. 知道CAP定理嗎 --> 沒答出來

分布式系統不可能同時滿足一緻性(C:Consistency)、可用性(A:Availability)和分區容忍性(P:Partition

Tolerance),最多隻能同時滿足其中兩項

17. c++11新特性 

long long類型,nullptr常量,auto關鍵字,範圍for循環,lambda表達式,string數值轉換函數,智能指針

18. C++裡的HashMap底層是怎麼實作的

數組加紅黑樹

19. C++的記憶體分區

在C++中,記憶體分成5個區,他們分别是堆、棧、自由存儲區、全局/靜态存儲區和常量存儲區

1.棧,就是那些由編譯器在需要的時候配置設定,在不需要的時候自動清除的變量的存儲區。裡面的變量通常是局部變量、函數參數等。

2.堆,就是那些由new配置設定的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般一個new就要對應一個delete。如果程式員沒有釋放掉,那麼在程式結束後,作業系統會自動回收。

3.自由存儲區,就是那些由malloc等配置設定的記憶體塊,他和堆是十分相似的,不過它是用free來結束自己的生命的。

4.全局/靜态存儲區,全局變量和靜态變量被配置設定到同一塊記憶體中,在以前的C語言中,全局變量又分為初始化的和未初始化的,在C++裡面沒有這個區分了,他們共同占用同一塊記憶體區。

5.常量存儲區,這是一塊比較特殊的存儲區,他們裡面存放的是常量,不允許修改(當然,你要通過非正當手段也可以修改)

20. 再次反問:

21. 對go了解嗎,對php了解嗎 --> 不了解 

5.20 16:20hr面

offer選擇

學而思主要用的是php,部分用go和C++, 隻有極少一部分Java, hr也說進去肯定要轉語言,但是沒說具體要轉什麼語言,我的顧慮是因為我之前的項目實在是太low了,本來打算暑期做一個稍微好一些的項目的,但是如果暑期實習轉了語言,公司肯定就沒有做Java項目來做了,而且因為要學習新的語言,自己肯定也沒時間私下做Java項目了,那這個實習經曆好像對秋招就沒有什麼用了,

另一個選擇是興業數金,這個公司的平台小一些,但是用的是Java語言,

前期一直沒有offer,心态差點崩了,但是這段時間又拿到這兩個這麼糾結的offer,真是太難選了

繼續閱讀