2018java開發一些面經


2018Java開發面經(持續更新)

不要給自己挖坑!!!不要給自己挖坑!!!不要給自己挖坑!!!如果面試官只是問你了解xxx嗎,如果不是很了解,就直接說不知道,不要說知道,不然面試官深問再不知道就印象很不好!

處女面送給了頭條(北京)日常實習(一面掛,視頻面,持續時間一個小時,2018.3.28):

1.項目問題---針對在線考試系統
  1)數據表結構,表之間的關系,包括有幾個表,每個表里面包含的字段,表之間是怎么關聯的。
  2)擴展需求(我的設計里面學生每場考試只能考一次):學生反復考同一份考試,怎么查看每場考試的具體情況?
    解決辦法:可以新建一個考試情況表,存儲相關信息。然后根據考試情況表的id,來區分每場考試情況。即前台點擊的時候,可以hidden當前的考試情況id,然后后台就可以區分了。
  3)計算和傳文件時間較長,怎么處理?
2.項目問題---針對商城
  1)怎么發展成集群?集群是什么意思?
  2)訂單號怎么生成?
  3)怎么實現定時關單?
  4)為什么要做購物車商城
  5)get和post分別在什么情況下使用?
3.基礎
  1)mysql索引,兩個關鍵字的索引,如果只查其中一個,是否用到索引?
  2)hashmap的時間復雜度是多少,解決沖突的辦法有哪些?
    解答:時間復雜度是o(1),但要具體分析一下,因為里面還有鏈表的復雜度存在。
4.手撕算法
  1)傳入是hashmap,嵌套多個key,怎么去除嵌套的key,還原數據。即類似{url:{url:{url:127.0.0.1}}}的數據,將最里面的數據還原。
  2)有序數組,怎么確定某一個數有多少個。(感覺想考二分查找,時間復雜度要小於o(n))
字節跳動(武漢)暑期實習(兩面技術一面HR,現場面,給了口頭offer拒了。持續時間技術面平均一個小時,hr十分鍾,2018.6.15)
openday做了筆試題,10個單選題,兩個算法題,一個設計題。
單選題內容:
1)多線程訪問情況下,變量是否加鎖問題。代碼如下:這里需要加鎖的是a和b。因為k是每個線程獨有的,而a和b是共享的。
1 int a = 10;
2 public int fun() {
3     static int b = 10;
4     int k = 1;
5 }

2)操作系統LRU的計算題。

3)TCP和UDP的區別。

4)網絡子網的計算,即有多少個子網,每個子網多少個主機。

5)16進制表示的兩個有符號數相加,0x7FFF FFFF FFFF FFFE + 0x1000 0000 0000 0000,結果是-2。

6)堆排序的時間復雜度是o(nlgn),建堆的時間復雜度是o(n),調整堆的時間復雜度是o(lgn)。

7)排列組合問題,20分鍾內一輛車經過的概率是75%,則10分鍾內一輛車經過的概率是多少。

  設10分鍾內一輛車經過的概率是p,則有(1-p)(1-p)+0.75=1,解得p=0.5。

8)匯編高低位怎么放置的問題。

算法題:

1.尋找數組中的峰值(比左右兩個值大)。直觀解法是o(n),遍歷一遍找到就返回;優化解法是o(lgn),二分查找,一旦找到就返回,否則左右誰大往哪邊找。

2.leetcode42題

設計題:

設計微博時間線系統,關注的人發微博后怎么實時更新到粉絲首頁,盡量少的延時,下滑時翻頁是怎么做到的。要求,模塊設計,模塊之間的協調通信。

解決:仿照微信(寫擴散)。寫擴散的應用:粉絲和發微博不是很多的情況。每次關注的人發微博的時候要向粉絲寫入數據。所以當數據量太大的時候有可能承載不了,但是微信朋友圈是可以的。讀擴散的應用?

考察:設計題沒有標准答案,要注意針對不同的實際業務量有不同的分析和解決方案。

一面(五十分鍾)

1.針對筆試題,一一追問解決辦法。

2.TCP和UDP的區別:TCP可靠、具有擁塞控制,但是有延時、消耗資源;UDP不可靠,適用於視頻通話等。

3.畫出項目的整體框架圖,是架構式的,系統瓶頸在哪里(圖片服務沒法更新、tomcat沒做異步)。

二面(一個小時,TCP和UDP的問題問的很深入,起碼問了有半個小時)

1.域名解析過程,IP由DNS服務器解析出來,DNS用UDP協議,HTTP的PORT默認是80,用到了TCP建立三次握手連接,數據鏈路層查找MAC地址用的ARP協議(但這個協議實際是網絡層的)。

1.TCP和UDP深入追問,TCP是針對字節流的,UDP是針對報文的,他們的本質區別是什么?即字節流和報文在發送和接收數據方面有什么不一樣的地方?TCP由於有窗口大小的限制,所以發送端發送過來的數據如果過大,不能一次性全部接收,而應該循環接收,直至全部接收;而UDP則沒有這種限制,發送端發多少,接收端就可以收多少。

2.Socket編程中,發送端send兩次10B的數據,接收端receive一次數據,可以接收的數據范圍是多少?1B~20B。

3.MySQL索引有哪些?左前綴索引是什么樣的概念?在什么樣的情況下索引會失效?

4.MySQL的引擎有哪些?有什么區別?

5.redis的數據類型有哪些?各適用於什么場景?

6.Java里面的map都有哪些子集合?各有什么區別?HashMap(允許null值,非線程安全,時間復雜度是o(1)),HashTable(不允許null值,線程安全),TreeMap(有序,時間復雜度是o(lgn))。。。

8.HashMap的key是自定義的類時,為了保證key的唯一性,應該重寫該類的hashCode和equals。

7.加密存儲是用什么加密的?MD5是不可逆加密,可不可以用密鑰加密?為什么不采用密鑰加密,這種可逆加密與不可逆加密有什么區別,各有什么好處?

8.自己挖坑了。。。加密算法了解一些嗎?對稱加密和非對稱加密。。。

9.單點登錄系統的實現思路。單點登錄主要解決什么樣的問題?cookie不能跨域問題。你的系統中解決了什么樣的跨域問題?www.mall.com和www.baidu.com這種跨域問題怎么解決?

10.寫sql語句,uid,date,count分別表示學號,進圖書館的日期,進圖書館的次數,查出每個學生四月份進圖書館的總次數。select uid,sum(count) from t where 4月份 group by uid。

11.Java中的堆區和棧區有什么區別?

 
京東(北京)暑期實習(兩面技術一面Hr,電話面,由於害怕對秋招由影響,hr還沒開始我就拒掉了)

一面(2018.4.13)

1.技術方面介紹一下項目。
2.用到了redis的哪些數據結構。
2.集群是什么,怎么發展成集群的形式?
3.ngnix的conf怎么配置成集群?
4.散列表解決沖突的方式有幾種?各有什么優劣,哪種最好?
5.介紹一下kmp算法。

二面(2018.4.17)

1.每個組成的作用和所處的角色,包括JDK,JRE和JVM。JRE和JVM的區別。

  答案:JVM不只做回收,

2.在什么場景下會用到哪些集合類?

  答案:HashMap,ArrayList,HashSet等。

3.每個集合類的特性。

  答案:hashmap可以存session,hashset不允許重復值,arraylist獲取列表。hashset數據是否有序。基於set的有序存儲應該用什么實現,treeset。

4.重寫和重載的區別以及什么時候使用。子類怎么調用父類的方法。

5.線程和進程之間的區別以及各自的優缺點以及各自的使用場景。

6.線程的狀態及轉換關系。

7.快排和冒泡的流程。

8.JVM的GC、分代回收等。

9.堆和棧存儲的是什么?基本數據類型和字符串存在哪里?方法定義存在哪里?

  答案:堆:對象。棧:引用。

10.http請求的流程

  答案:查找本地緩存ip->DNS解析等。

11.

 

阿里內推sdn開發實習(一面掛,每次接到電話都是晚上,2018.4.23)

1.介紹源地址驗證項目。
2.用什么進行驗證匹配,五元組?驗證規則有優先順序嗎?
3.另一個項目主要負責了哪一部分。
3.用到了什么數據庫,redis存session數據,數據過期怎么辦?
4.spring怎么加載數據?
5.依賴注入是怎么回事?
6.用到了哪些注解,每個注解的作用和原理。
 
 
 
vivo秋招提前批(offer已拿,一面技術一面Hr,2018.6.5)
技術面 
1.數據庫有多少種范式?每種范式都解決了什么問題?你的電商項目里用到了哪種范式?
2.linux有沒有編譯過c++程序,c++與java的區別是什么?
3.md5是加密算法嗎,怎么進行加密的?
4.設計模式有多少種?
5.抽象類和接口的本質區別,什么時候用抽象類(模板),什么時候用接口(更抽象)?
6.在高數據量的情況,怎么實現數據控制攔截?
7.怎么確定是正常數據包還是偽造數據包?驗證方式是什么?輪詢。
8.單點登錄跨域問題的解決。
9.ngnix做反向代理和靜態加載,location的配置。
10.國內主要的交換機廠商有哪些?
11.分布式高並發,tomcat的設置使用相關。
12.http的狀態碼有哪些?各代表什么含義?比如200,404,405,500,301,302等。
hr面
1.自我介紹
2.興趣愛好
3.對vivo的了解
4.家庭情況
5.工作地點要求
6.面對加班情況,女生相對於男生的優勢在哪里
反問問題:新人的培訓體系是什么樣的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM