美團背景開發(Java)
面了一個小時,先是業務面試,針對自己的項目問了半天。然後就是Java基礎。多線程實作方式,線程同步方式。synchornized和volatile的差別。網絡問了tcp三次握手和四次揮手。http包含什麼,資料傳輸中丢包怎麼處理最後問了一個算法題。題目是一個問題社群。有n個人。一人提問,其他人來回答。一下情況算作弊,例如一樓提問,2樓回答。而2樓提問時1樓做了回答,此時1、2兩人算作弊。若3樓提問時1、2樓給予回答(即兩個确定作弊者回答了問題)則三樓也算作弊。找出所有作弊的人來。(手寫代碼實作)
金山雲背景開發
同樣一次面一小時。問的特别詳細。照着筆試題問中間穿插别的問題。網絡、作業系統、資料結構、算法、Java基礎、資料庫均有涉及。網絡問了TCP三向交握(特别詳細,syn ack,序列号确認号的具體細節),滑動視窗,擁塞控制的方式有哪些,具體是什麼。糊塗視窗,nagle算法。作業系統問的程序排程FIFS等重點是時間片和多級回報隊列。,至于java呢還是多線程,hashtable和hashmap的差別。
String、stringbuffer、stringbuilder差別。哦對了。還讓自己舉例一個複雜的資料庫語句查詢的情況并寫出sql語句。然後是資料結構單連結清單的問題。給出兩個單連結清單,找出第一個相交的節點,寫代碼實作。這個so easy,然後變體,兩個連結清單周遊相同的步數找出相交節點。繼續變體,給出的兩個連結清單,指針在連結清單尾部時怎麼做,還有變體(樓主要瘋了,沒辦法你老大你說了算,變就變吧),還是這兩個連結清單,以o(1)的時間複雜度找出來相交的節點。(提示:用map)
京東商城
spring的aop、ioc、di等、spring的bean範圍是什麼。Struts2的bean是單例還是多例。一個表單内容太多,以至于需要用滾動條。那麼不用滾動條而使用下一頁處理。頁面跳轉怎麼處理。再就是Java基礎override和overload 的差別。arraylist和linkedlist的差別。抽象類和接口的差別以及什麼時候使用抽象類什麼時候使用接口,hashtable和hashmap的差別,hashmap的底層實作。Java有沒有記憶體洩漏。Java的垃圾回收算法有什麼。若新生代為1M老年代為2M,若要回收的對象有3M怎麼處理。對于比較大的對象放在新生代還是老年代等