三七互娛(2019年春季校園招聘,崗位:Java遊戲開發(服務端))
1.宣講會筆試,20道單選,10道不定項(具體題目不大記得了)
2.到公司,一份開放題:
1.你認爲java語言有哪些需要改進的地方
2.有沒有遇到程序性能瓶頸,怎麼定位和處理
3.你心中的遊戲服務器是怎樣的,工作原理是什麼
3.一面(40min):
熟悉哪些linux命令
熟悉哪一些數據結構,舉幾個例子
講一下tcp/udp區別,分別的使用場景
有沒有使用過netty,網絡編程的知識瞭解哪些
有沒有看過哪些jdk或開源框架的源碼,舉幾個例子,講一下底層實現
hashMap底層結構,擴容機制,導致的性能問題
開發過程中線程池的使用,初始化參數意義
多線程環境下怎樣保證共享變量是安全的,常見的幾種處理方式
舉幾個juc包中類的用法
juc包中的類是怎麼保證線程安全的,與之前的有什麼區別
怎樣實現無鎖線程安全
講一下jvm有哪些gc算法,實際開發有沒有遇到過內存溢出現象,原因是什麼,怎麼定位和解決
平常用過什麼設計模式(主要說了工廠和策略),舉幾個例子,具體怎麼設計的,有什麼好處
代碼規範和設計方面怎麼做,舉幾個例子(面試官提醒:借鑑代碼整潔之道中的幾個設計思想)
平常看什麼書,怎麼學技術
平常玩什麼遊戲
根據簡歷:
講一下kmp算法和哈夫曼樹
項目中主要負責什麼部分,有沒有遇到過併發環境下導致的線程安全問題,怎麼解決的
做二次開發主要是用到金蝶雲之家哪個部分的功能,怎麼結合現有應用的(面試官之前是雲之家底層引擎的開發者)
4. 二面(30min):
jvm運行時數據區域有哪些,分別有什麼作用
問有沒有做過網絡編程相關的經驗,舉幾個例子
線程池的種類,爲什麼要使用線程池去管理線程
不加鎖怎樣實現線程安全
nio的底層原理,爲什麼異步非阻塞能夠實現無鎖線程安全,講一下實現(還說底層有粒度很小的加鎖機制,近似於無鎖。。。我一臉懵)
juc包有用過嗎,講一下AQS
volatile實現原理,它能保證線程安全嗎,爲什麼能保證讀取的變量值是最新的
atomic修飾的變量爲什麼能保證原子操作,實現原理是怎樣的,是否加鎖了
hashTable和currentHashMap的底層結構,兩者分別怎樣實現併發下線程安全,有沒有加鎖,1.7版本和1.8版本底層實現有什麼不同(當時講亂了,涼涼)
實際開發中juc包的使用,舉幾個實踐案例(越說不會的知識點問的越多,有毒,求求你別問了。。。)
遊戲服務器開發瞭解多少
5. hr面
說人太多,現在的hr面均轉爲電話面形式,一週內出結果。
我結果應該涼了,太久沒複習加上沒使用,評價一般。隔壁一哥們面了60+60min,穩的一批。