2020-JAVA-大数据-面试汇总
沒有關注的小伙伴可以在微信搜索框中搜索微信公眾號:?
3分鐘秒懂大數據,然后點擊關注,回復? java-大數據???
即可免費領取 java-大數據總結的所有面試知識點,總共300多頁!!!
騰訊一面? 試下? ?4月6日? 掛
1 自我介紹
2 介紹一下你在項目中的承擔的任務
3 你對哪種語言熟悉
4 線程池使用過吧,說說線程池中有哪些關鍵字 具體使用方法。
5? 說說hashMap 使用的是哪種數據結構,
6說說hashMap 和 ConcurrentHashMap 的區別
7為啥hashMap是線程不安全的??
8鎖機制怎么使用的?
9如何查看linux 內存占用情況
10 如何在4億個數字中去重
11 快速排序的原理及實現
12 遞歸算法如何查詢
字節提前批一面? ?
1. 自我介紹
2,介紹一下項目
3,MapReduce中容易發生數據傾斜,是怎么產生的,如何處理?
4,Hive數據傾斜怎么產生的? 怎么處理?
5,Spark 數據傾斜怎么產生,如何處理?
6. ?大表和小表如何進行查詢?
7.說說HashMap?
8.hashMap使用什么樣的數據結構?如何擴容?
9.hashMap線程安全嗎?和它對應的hashTable呢? CurrentHashMap呢?
10.HashTable 和CurrentHashMap 的區別?
12.用過哪些設計模式? 講講動態代理模式 和單例模式
13 寫一下單例模式,在多線程情況下呢?
14 設計一個棧,包含出棧,入棧,是否為空等
15 求兩個大數相加,每個數100位長度。
字節提前批二面
1.自我介紹
2.介紹一下Spring及Springboot.
3.Spring IOC如何解決循環依賴的問題?
4.有沒有產生過依賴A依賴B,B依賴C?
5介紹一下Spring AOP
6Spring AOP用的哪些設計模式?
7 JDK代理和CGlib代理有啥區別?
8,假如沒有接口,又含有final,如何使用動態代理。
9沒有mybatis,如何寫dao層?
10.說一下沒有mybatis時,通過JDBC具體如何實現這個過程的?
11.了解java線程池嗎?
12.線程池在提交任務和執行任務時是怎么做的?
13創建線程池,當里面的線程數量達到最大時,會出現什么問題?
14 說一下ThreadLock?
15 說一下mysql的事務的隔離級別
16 講一下mysql的存儲引擎
17 mysql的索引有哪些?
18 寫兩個代碼??
1 實現一個鏈表反轉,設置一個步長,每隔幾次,鏈表進行反轉
2 設計一個hashMap,實現一個put方法。
阿里一面 實習 4月24日? 面試時長2小時? 掛
阿里的第一次面試:
1.自我介紹
2.研究的課題以及培養方向
3.介紹一下你參與的項目
4.項目中有哪一部分是有技術難點的,以及技術架構是怎么樣的?
5.50個人的并發量也很低,為什么會出現系統頁面數據顯示過慢?
6.?那你們是怎么解決那個頁面顯示速度過慢?
第二個系統介紹?
7.如何將多個部門的數據進行融合?
8.往系統中導入數據的時候會遇到什么問題?
9.系統前端采用什么做的?
10.導入時,進度條是通過什么技術實現的?
11.返回前端是怎么返回的?
12.前端機制,websocket有沒有了解
13.第三個系統介紹
14.系統產生日志文件,一天產生多少條?
15.怎么用mapreduce處理日志文件的?
16.從業務上說一下怎么對日志文件進行分區的,怎么保存的?
17.用mapreduce處理日志文件的任務,輸入是什么,輸出是什么?
18.?處理日志時,輸入是一個文本,要對他進行拆分,拆分的緯度是什么緯度?
19.用hive怎么對日志文件進行多維度分析的?
關于網絡相關的問題
20.四層模型是哪四層,7層模型是哪7層?
21.鏈路層要解決什么問題??
22.數據鏈路層的網絡地址用什么表示?
23.三次握手和四次揮手?
24.四次揮手,斷開連接的時候,經常會出現time_wait的狀態,這個狀態是怎么產生的???
25.TCP是在IP的上層還是下層???上層
26.TCP和UDP有什么區別,以及用途
27.UDP典型的應用?
28.HTTP屬于哪一層協議??
29.HTTP底層是基于哪一層協議的?
30.HTTP和?HTTPS的區別?
31.說說對HTTP的協議有什么了解?
32.HTTPS的安全體現在哪個方面?
33.說說HTTPS協議關于CA證書這方面的了解
34.HTTPS傳輸時涉及到一些加密算法,有哪些了解,以及算法的應用場景?比如RSA?
35.對稱加密算法和非對稱加密算法的概念
36.HTTP協議的method有幾種
37.get和post的區別
38.web編程了解多少?
39.在前端提交請求時,cookie中經常有個jsessionid的cookie值,這個cookie值是用來干嘛的?
40.服務器一般保存了一個session,瀏覽器為什么知道我多次請求在一個session里面,為什么能找到我之前的session
41.session機制
數據結構相關的知識:
42.?說說樹的遍歷有深度遍歷(DFS)和廣度遍歷,一般怎么實現?
深度遍歷就是先序遍歷?先序遍歷采用遞歸,
非遞歸需要用到棧,利用棧的先進后出特性
廣度遍歷就是層次遍歷,應該使用非遞歸,需要用到隊列,先將根入隊,隊列不空時pop,然后入左子樹,再入右子樹
43.排序算法都有哪些,以及他的時間復雜度
44.說說平衡二叉樹的特點
問一些java語言的問題
45.?說一下==和equals的區別?
46.?為什么要重寫equals和hashcode()方法
47.靜態變量和靜態方法,和實例變量和實例方法有什么區別?
子類不能重寫靜態方法
48.為什么要用靜態方法和靜態類
49說下關于map以及他的實現類有哪些?
50.說一下hashmap,hashtable,currenthashmap的區別
51.經常在遍歷一個map時,在刪除時,經常會遇到并發錯誤
52.設計模式?了解哪些,比如單例模式,工廠模式,動態代理模式
53.說說對垃圾回收機制的了解
54.垃圾回收機制的算法有哪些,初生代用哪些算法,老生代用哪些算法
55.如何判斷出哪些垃圾該清理,哪些不該清理?
數據庫方面的知識
56.說說內連接和外連接的區別
57.數據庫設計時會碰到一對多,多對多時,應該怎么設計
58.?就以用戶表和角色表為例,假如用戶表里面放著角色表的id作為?角色表的外鍵,那一個用戶對應多個角色時,
這樣設計會有哪些問題
機器學習方面的問題
59.監督學習和非監督學習有什么區別?
60.springboot應該要接收前端ajax請求時,應該使用什么注解
61.springboot中configuration的注解有什么用?
分布式集群有哪些了解
62.nginx有哪些了解?
63.如果一個session在一臺服務器上保存,下一次session請求時,nginx反向代理把我的session請求轉發到另一臺服務器上,這種情況該怎么處理?
64.微服務架構和一些容器的技術有什么了解?
65.docker有什么了解?
?
京東實習1面? ?通過
1,自我介紹
2 ?int 占幾個字節? 其他幾個數值型的分別占幾個?
3.集合,經常用的組數和鏈表的有哪些? 說說ArrayList 和LinkedList
4. 說說HashMap
5. 說說conCurrentHashmap?
6 線程用過嗎? 在哪用的?
7.五條線程是怎么設計的?
8.怎么啟動一個線程?
9.了解反射嗎? 說說反射?
10.用過Spring嗎?
11.為什么在配置文件中配置了,就可以用?
12.用過redis嗎 redis都有哪些數據結構?
13.說說Hadoop?
14 說說HDFS的讀操作和寫操作
15 說說MapReduce
16 Hive的元數據,都有哪些?
17 用過kafka嗎?
18 寫一個單例模式
19 final 關鍵字
20 介紹一下volatile 關鍵字
2 京東實習二面 (主要問項目) 通過
1.自我介紹
2.介紹一下第一個大數據項目,用了哪些技術,畫一下架構圖
3.flume采集子系統日志,這些日志數據都包含哪些?
4.集群是怎么部署的?
5.分析使用什么進行分析的?
6.系統分析的優點和缺點都有哪些?如何改進一下?
7.實時的了解多少?
祖龍娛樂? ? ?7月24日下午5點面試? ?時長 73分鐘? (包括答案) 通過
在電腦前苦等半小時,終于面試官上線了,一看,一下兩個人,我去,心理壓力好大,趕緊放松放松心情
先簡單的來個自我介紹:
1? 自我介紹
2? 你自己搭過大數據集群嗎? 那你說說搭建hadoop集群的3個xml文件
- core-site.xml
- hdfs-site.xml
- mapred-site.xml?? 心想這簡單,趕緊將3個xml說出來,并簡單說了下里面都包括啥
3 正常的hadoop集群工作都會啟動哪些進程?
當時回答是:namenode,datanode ,secondarynode ,
4.他們的作用分別是什么?
- nameNode? ?主節點 負責維護整個Hdfs文件系統的目錄樹,以及每個文件所對應的block塊信息(元數據)
- DataNode? 從節點? 負責存儲具體的文件數據,并且每個block可以在多個datanode上存儲多個副本
- secondary? nameNode? 相當于一個備用的naneNode, 當nameNode死機之后,可以將secondary nameNode
- 的數據備份到nameNode上面 ,但不能備份完整數據,它有兩大功能,1 鏡像備份,2 日志與鏡像定期合并
5 你能詳細介紹一下secondaryNode 的具體作用嗎?
當然可以,這個問題我可是仔細研究過,哈哈??
- secondary? nameNode會經常向namenode發送請求,是否滿足check。
- 當條件滿足時,secondary? nameNode將進行checkPoint? 。
- 這時nameNode 滾動當前正在寫的edits,將剛剛滾動掉的和之前edits文件進行合并。
- ?secondary? nameNode下載edis文件,然后將edits文件和自身保存的fsimage文件在內存中進行合并,
- 然后寫入磁盤并上傳新的fsimage到nameNode,這時nameNode將舊的fsimage用新的替換掉。
?6? 看來你掌握的還不錯啊,HDFS的塊默認是保存幾份?一個塊多大?
? ? ?默認保存是3份,一個塊是128M。
7 之前的64M 是從哪個版本變換的?
hadoop 1.0? 默認是64M, hadoop 2.0 由64M 改為128M
8 那假設現在是128M,那我在工作中想把它調為256M,那我需要調整什么,才能改變塊的大小?
主要是磁盤的存儲決定 塊的大小,塊組成的文件的大小取決于磁盤的傳輸速率,調整磁盤,可以改變塊的大小。
9 Hdfs的讀寫過程你了解嗎? 簡單講講?
那我就說說寫過程吧,
- 1、客戶端跟nameNode 通信,請求上傳文件,nameNode檢查文件,父目錄是否存在,并向客戶端返回是否可以上傳文件
- 2、客戶端請求第一個block塊該上傳到哪個datanode服務器上,nameNode查詢從節點之后,返回對應的danaNode 服務器
- A,B,C等。
- 3、客戶端請求nameNode服務器,采取就近原則,選擇A服務器上傳數據(本質上是個RPC調用,建立PipeLine),A收到
- 請求后,A調B,B調C,將每個pipline建立連接,然后逐級返回給客戶端
- 4 客戶端開始往A上傳第一個block,以Package為單位,A收到一個Package,就會傳給B,B傳給C,A每傳一個package就會
- 放入一個應答隊列,等待應答。
- 5、當第一個block傳輸完成后,客戶端再次請求namenode上傳第二個block。
10 挺好,那你說一下MapReduce的工作原理?
- 1、客戶端啟動一個job,然后向jobTracker請求一個jobID
- 2、 然后將運行所需要的資源文件上傳到HDFS上,包括Mapreduce程序打包的jar包,配置文件,以及計算的輸入劃分信息等
- 3、 這些文件全部存儲在JobTracker專門創建的jobID文件夾中(jar文件會有10個副本,輸入劃分信息對應著jobTracker應
- 該啟動多少個Map任務)
- 4、JobTracker將這些資源文件放入作業隊列中,調度器根據調度算法對作業文件進行調度,根據輸入劃分信息劃分Map任務
- 并將map任務分配給TaskTracker執行。
- 5、taskTracker每隔一段時間發送給jobTracker一個心跳,告訴它自己的運行情況,這個心跳中包含map任務完成的進度等。
- 6.當最后一個任務完成后,jobTracker會將該任務設為成功,返回給客戶端。客戶端得到結果,得知任務完成便顯示
- 消息給用戶。
11 你在具體講一下map中的一些步驟,例如partition,sort,combiner,shuffle等等。
好的,sort 主要是排序,combiner是合并,partition是分片等,
首先Mapper根據文件進行分區,sort將Mapper產生的結果按照key進行排序,combiner將key相同的記錄進行
合并,partition是吧數據均衡的分配個Reducer. shuffle是Mapper將結果傳給Reduce,在這期間容易發生數據傾斜等。
12 那這個數據傾斜一般是在Mapper端發生的還是Reduce中發生的?
Mapper將數據處理完傳給Reduce,當Reduce進行處理時,因為一部分key的數據量過大,導致其他分區已經執行完成
而數據量過大的key執行時間過長,所以數據傾斜是發生在Reduce端的。
13,對,那發生數據傾斜是因為這個key分布不均勻,那你會怎么優化呢?
因為研究生期間研究的課題就是關于Spark的并行大數據清洗,所以對MapReduce和Spark發生數據傾斜的過程和解決方法
比較熟悉,
可以在Mapper期間將大數據量相同的key進行分散,通過添加N以內的隨機數前綴,對數據較多的Key進行子擴展,
先進行局部操作,再去除隨機數之后進行聚合操作,避免在進行Shuffle操作時出現數據傾斜問題。
14 那Mapper端進行combiner之后,除了速度會提升,那從Mapper端到Reduece端的數據量會怎么變?
數據量會減少,因為combiner之后,會將相同的key進行一次聚合,數據量會在這時候減少一部分
15 map 輸出的數據如何超出他的那個小文件內存之后,那他是落地到磁盤還是落地到HDFS中?
落地到磁盤中,因為map,reduce操作,就是一次次的I/O請求
16? Map到Reduce默認的分區機制是什么?
這個是根據那個hash進行計算? ?對map中的key做hash,對reduce個數取模
17 hadoop的調優主要針對配置文件的調優你知道哪幾種?
- 思考了一下,
- 1、因為Mapreduce運算時是在磁盤中進行的,所以?通過修改磁盤I/O,也就是設置和的預讀緩沖區大小
- 來提高hadoop里面大文件順序讀的性能。以此來提高I/O性能。
- 2、通過修改三個配置文件的參數如 core-site.xml,mapred-site.xml,hdfs-site.xml等
- 例如 修改core 文件里面的buffer.size,來修改讀寫緩沖區的大小,還有hdfs文件里面的block.size修改塊的大小等
- 都可以進行調優
18 好的,給你出個題,現在有1G的數據文件,里面有四個字段,分別是id,name,age,class,然后要按照class來分組,
id來排序,口述一下mapreduce的過程是怎么實現的?這里面會有幾個map?
思考了一下,
- 1、首先1G文件,那默認一個塊是128M,所以可以分為8個塊,對應的就是8個Mapper
- 2、然后定義一個對象,將四個屬性封裝到對象中,實現序列化和反序列化
- 3、定義一個類繼承partitioner類,調用對象中的class屬性設置分組,
- 4? 在map端對文件進行讀取,然后通過Split來進行分割,調用對象的id作為key,然后進行局部sort排序,在combiner局部聚合
- 后通過reduce來進行整體聚合。
說完之后感覺對著吧,果然,聽見面試官說嗯嗯,好。覺得差不多對啦
19 嗯嗯,好,說說yarn吧,它有什么優勢,能解決什么問題?
yarn集群主要分為主節點ResourceManage,從節點 NodeManage??ResourceManage負責資源的分配,將集群的資源分配給
各個應用使用,資源分配的基本單元是Container,NodeManage則是一個計算節點的管理者,負責啟動應用的
所需的Conbiner,并對內部資源進行監控等。??
yarn一般和mapreduce進行結合,主要是對mapreduce中的資源計算進行維護等。
答完之后,心想別問yarn吧,這塊看得不是很深,哈哈,果然,面試官問了一個問題后就跳過了
20 說說Spark吧,Spark為啥比Mapreduce運行塊,原因都有哪些?
1 spark是基于內存計算,mapreduce是基于磁盤運算,所以速度快
2 spark擁有高效的調度算法,是基于DAG,形成一系列的有向無環圖
3 spark 是通過RDD算子來運算的,它擁有兩種操作,一種轉換操作,一種動作操作,可以將先運算的結果存儲在
內存中,隨后在計算出來?
4 spark 還擁有容錯機制Linage
21 什么是RDD??
RDD就是彈性分布式數據集,可以理解為一種數據結構,擁有多種不同的RDD算子
22 你都知道哪些RDD算子?
比如轉換操作,有map().fliter() flatMap(),distinct()等? 動作操作? 有 collect ,reduce 等
23. 你知道reduceBykey 和groupBykey有啥區別嗎?
reduceByKey會在結果發送至reducer之前會對每個mapper在本地進行merge,
有點類似于在MapReduce中的combiner。這樣做的好處在于,在map端進行一次reduce之后,數據量會大幅度減小,
從而減小傳輸,保證reduce端能夠更快的進行結果計算。
groupByKey會對每一個RDD中的value值進行聚合形成一個序列(Iterator),此操作發生在reduce端,
所以勢必會將所有的數據通過網絡進行傳輸,造成不必要的浪費。同時如果數據量十分大,
可能還會造成OutOfMemoryError。
24.現在有一個業務,當SparkStreaming在消費kafka里面的數據,然后消費了一段時間之后,程序掛了,當
下一次程序啟動時如何保證SparkStraming能繼續消費kafka之前的位置?
聽到這個問題時,我就偷笑啦,幸虧上次海康威視問過我,我就好好看了一下
可以依靠checkPoint機制來保證,每次SparkStreaming消費kafka數據后,將消費的kafka offsets更新到checkpoint,當
程序掛機或升級時,就可以用過讀取checkpoint 的記錄來接著上次的位置進行讀取,實現數據的零丟失。
25,除了這種方式還有什么方式?
還可以在sparkStreaming中另外啟動一個預寫日志,這將同步保存所有收到的kafka數據導hdfs中,以便發生故障時,
恢復到上次的位置和之前的數據。
26,你說說Spark的廣播變量?
聽到這個問題后,一臉懵逼,不會拉。。 我都猜想 面試官肯定在想,小樣,我還難不倒你拉。。。。
然后我就讓面試官給我講了一下。。
Spark中因為算子中的真正邏輯是發送到Executor中去運行的,所以當Executor中需要引用外部變量時,
需要使用廣播變量。廣播變量只能在Driver端定義,不能在Executor端定義,在Driver端可以修改廣播
變量的值,在Executor端無法修改廣播變量的值
27 那你知道累加器嗎?
之前看過一點,累機器相當于統籌大變量,常用于計數,統計。累加器常常被作為rdd的map filter操作的副產品等。
28.你說說spark中 job,stage,task,分別代表什么?
Job簡單講就是提交給spark的任務。?Stage是每一個job處理過程要分為的幾個階段。
Task是每一個job處理過程要分幾為幾次任務。Task是任務運行的最小單位。最終是要以task為單位運行在executor中。
29.嗯嗯 好,說說Spark的工作機制?
我去,咋問的都是大問題啊,幸虧之前復習過。。
用戶在客戶端提交job作業后,會由driver運行main方法并創建SparkContext上下文。執行RDD算子,形成DAG圖,
然后將DAG圖交給DAGScheduler來處理。DAGScheduler按照RDD之間的依賴關系劃分stage,輸入task Scheduler,
task Scheduler會將stage劃分為task set分發到各個節點的executer中執行,executor以多線程的方式執行,每個線程
負責一個任務,任務結束后,根據不同類型的任務返回不同的結果。
30? 你了解zookeeper嗎?
zookeeper 是一個分布式協調服務,zookeeper集群包括 leader 和 follow
31?說說zookeeper的選舉過程,比如現在有五臺機器,ABCDE依次啟動起來,那么哪臺是leader?
記得不太清楚了。。就大概說了一下
1.首先更新logicalclock并提議自己為leader并廣播出去
2.進入本輪投票的循環
3.從recvqueue隊列中獲取一個投票信息,如果為空則檢查是否要重發自己的投票或者重連,否則
判斷投票信息中的選舉狀態: 就回答到這,后來下來百度了一下。。。
32 hive了解嗎?
Hive是基于Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,并提供類SQL查詢功能
33.說說內部表和外部表的區別?
內部表的數據是由Hive自身管理的,外部表的數據是由HDFS管理的;
刪除內部表會刪除元數據和存儲的數據;刪除外部表只刪除元數據不刪除存儲的數據
34,你知道UDF嗎?
UDF就是Hive提供的內置函數無法滿足業務處理需要時,可以考慮使用用戶自定義函數。
35 一張大表,一張小表,你寫join in時,哪個表放左邊,哪個表放右邊?
小表放前,大表放后,左查詢,根據小表為主進行查詢。
36? 問一下kafka的問題吧,kafka是怎么進行數據備份的?
哇,面試官 你是要把大數據里面的每個組件分別問一下,。。。。深呼一口氣,思考了一下 然后巴拉巴拉
備份機制是Kafka0.8版本之后出的,一個備份數量為n的集群允許n-1個節點失敗。在所有備份節點中,
有一個節點作為lead節點,這個節點保存了其它備份節點列表,并維持各個備份間的狀體同步。
37.消費者是從leader中拿數據,還是從follow中拿數據?
。。。不太會,備份機制這塊沒咋深入了解過。
kafka是由follower周期性或者嘗試去pull(拉)過來(其實這個過程與consumer消費過程非常相似),
寫是都往leader上寫,但是讀并不是任意flower上讀都行,讀也只在leader上讀,flower只是數據的一個備份,
保證leader被掛掉后頂上來,并不往外提供服務。
38.那換個問題吧。說說kafka的ISR機制?
- kafka 為了保證數據的一致性使用了isr 機制,
- 1. leader會維護一個與其基本保持同步的Replica列表,該列表稱為ISR(in-sync Replica),每個Partition都會有一個ISR,
- 而且是由leader動態維護?
- 2. 如果一個flower比一個leader落后太多,或者超過一定時間未發起數據復制請求,則leader將其重ISR中移除?
- 3. 當ISR中所有Replica都向Leader發送ACK時,leader才commit
39.kafka如何保證數據的不重復和不丟失?
答案上面已經回到了,面試官又問一遍。。可能是看我kafka這塊了解不是很深入。想再虐虐我。。。
40.kafka里面存的數據格式都是什么樣的?
topic主題,然后主題進行分區? topic 分為partition , partition里面包含Message。
41.kafka中存的一個是數據文件,一個是索引文件,說說這個?
。。。。。不太會。。。哇,kafka被虐慘啦
42.kafka 是如何清理過期數據的?
kafka的日志實際上是以日志的方式默認保存在/kafka-logs文件夾中的,默認7天清理機制,
日志的真正清理時間。當刪除的條件滿足以后,日志將被“刪除”,但是這里的刪除其實只是將
該日志進行了“delete”標注,文件只是無法被索引到了而已。但是文件本身,仍然是存在的,只有當過了log.segment.delete.delay.ms 這個時間以后,文件才會被真正的從文件系統中刪除。
43.一條message中包含哪些信息?
- 包含 header,body。
- 一個Kafka的Message由一個固定長度的header和一個變長的消息體body組成。
- header部分由一個字節的magic(文件格式)和四個字節的CRC32(用于判斷body消息體是否正常)構成。
- 當magic的值為1的時候,會在magic和crc32之間多一個字節的數據:attributes(保存一些相關屬性,比如是否壓縮、
- 壓縮格式等等);
- 如果magic的值為0,那么不存在attributes屬性body是由N個字節構成的一個消息體,包含了具體的key/value消息?
44.嗯,行,你知道mysql的最左原則嗎?
終于把kafka過去啦。。心累
最左原則:顧名思義,就是最左優先,比如現在有一張表,里面建了三個字段ABC,對A進行主鍵,BC建立索引,就相當于
創建了多個索引,A索引,(A,B)組合索引,(A,B,C)組合索引,那查詢時,會根據查詢最頻繁的 放到最左邊。
嗯 好,我的問題問完了,讓我同事問問你。
已經問了40分鐘純問題啦,,再換個面試官,好的,可以
45,剛才我的同事問的都是大數據相關的,那我們問點java相關的。
終于問java啦,下面的java問題每個都回答出來了,就不寫答案啦
46.說說抽象類和接口?
47,集合了解吧,說說集合有幾大類,分別介紹一下?
48,hashMap頂層實現了解過嗎?具體講講
49,說說hashMap在1.8之后優化的環節
50. HashMap 和 hashTable的區別?
51.另一個線程安全的是啥?
52.說說ConcurrentHashMap的底層實現
53.java實現多線程的方式有幾種?
54.講講 synchronized,Lock,ReetrantLock之間的區別
55.java的線程大概有幾種狀態?
56.sleep 和 wait方法的區別?
57.說說volatile關鍵字
58.說說JVM內存區域分為幾大塊,分別講一下
59.說說sql的事務隔離級別
60.說說mysql的存儲引擎
61 給你出個sql 題
student(sid,sname,sex,class)
course(cid,cname,teacher)
grade(cid,sid,score)?
1,sex 改為age,非空,默認值為0
2 統計035號課程分數大于036號課程分數的學生ID
3 統計所有003班學生各門功課的課程名稱和平均分
以上是所有的面試題,在寫sql的時候,卡了好久,因為好久沒寫過三表聯查,子查詢的sql,差不多忘了,
后來下線時,一度以為自己掛了,但是過了一個多小時之后,看了一下狀態,面試一輪通過,可能是面試官
看我前面的問題答得還可以讓我過吧。只是這問題量著實有點多。希望盡快約下輪面試。
多益網絡? 面經? 時長58分鐘? 掛
1 自我介紹?
2 重大項目管理平臺介紹?
3 你主要負責的是哪一塊內容?
4 項目最難的地方在哪?
5? 開發周期多長?
6? 說一下排行榜公布的那個具體實現過程
7 團隊合作中遇到什么問題?
8? 對互聯網加班有什么看法?
9? 算法??
將一個組數循環右移,根據K來
10? 斐波那契數列,不使用遞歸的方式實現
11 那你說一下java對象的生命周期
12? 說一下java的垃圾回收機制,和算法等
13? 什么是遞歸?
14 使用遞歸 有什么優點和缺點?
15? 說一下圖的表示方法
16? 圖有什么分類,圖論的分配法?
17 都有哪些排序算法??
18 哪些是不穩定的排序算法?
19 說說快速排序的原理?
20 最近看過什么書?
21 說一下三次握手
22 為什么要看 圖解HTTP
23? 問一些心態上面的問題?? 如果你對你的上司不滿意,你應該怎么做?
24? 為什么面向對象中,多用組合,少用繼承?
25 為什么選擇廣州?
26 你在做IQ題的時候,有沒有沒做完?
怎么感覺問完之后,問的好不專業。。。。什么都問了,技術面把hr面的問題都問啦
海康威視? ?一面? 7月17日? 通過
1 自我介紹
2? 你認為最好的項目介紹
3 導入導出介紹,排行榜介紹
4? 遇到難的問的,怎么解決的?
1 從eclipse轉到idea? 2 打包問題,3? 數據庫查詢(索引)? 4??
5? sparkStreaming 消費kafka中的數據存在消費不到,消費丟失的問題。
6? Spark 介紹一下 分為哪些組件?
7? Spark Sql? 和Hive 的區別?
8 SQL 的存儲引擎
9 sql 的事務隔離級別
10 JVM 區域劃分
11 垃圾回收機制 ,算法
12 hashMap 底層實現等
順豐科技SP專場 一面
1.自我介紹
2.實習期間主要用的技術棧有哪些。(答java、spring、springMVC、mysql、gitLab、layui、easyui)
3.Spring主要的特點(提AOP和IOC),有啥好處?
4.說一下IOC
5.AOP的實現機制
6.動態代理 jdk方式與cglib方式
7.Spring中的事務具體怎么做的? 事務的傳播性。
8.Mysql的事務隔離級別
9.讀未提交與讀已提交的區別
10.mysql事務如何保證持久性(提到undolog和redolog)
11.寫這些日志文件有什么好處,為什么要先寫日志文件而不是先做操作(面試官見我思考搶先答事務會追加到文件后邊再做操作效率高巴拉巴拉)
12.mybatis怎么解決sql注入問題(提到#{}和${})
13.mybatis的一二級緩存(二級緩存有些忘了)
14.springMVC處理流程
15.springMVC的好處在哪里(答代碼解耦,面試官答:便于多人協作開發)
16.聊java基礎,集合類有哪些類?
17.說一下hashMap底層實現原理(數組加鏈表)
18.hashmap的擴容機制
19.說一下什么叫哈希沖突
20.多線程線程池Executor框架了解么,為什么要引入線程池
21.線程池保持線程存活時間的具體參數關鍵詞(答keepaliveTime)
22.任務隊列滿了以后再來一個任務如何處理(執行拒絕策略)
23.JUC包里的東西,有哪些常用鎖(答Synchronized,reentrantlock,CAS等等,面試官答原子類等等)
24.原子類底層了解么,比如AtomicInteger
25.轉操作系統,問操作系統有幾大模塊,
26.RPC進程通信方式有哪些方式(答pipeLine,信號量)
27.聊網絡,網絡分層結構,大概每層的主要工作是什么
28.網絡層的主要功能(答路由),運輸層TCP的主要核心(答可靠傳輸)
29.數據鏈路層最核心參數
30.聊常用算法,說一下hashmap的紅黑樹
31.紅黑樹上的紅節點主要是干什么的
32 紅結點和黑結點區別,為啥是紅的,黑的
33 紅黑樹為啥部分平衡。
34 紅黑樹怎么旋轉?
室友字節跳動四面
之前投過游戲場的,好像筆試沒過(????)后來顯示已結束就聯系群里HR小姐姐幫我撈出來,
沒想到被測開崗撈走了,我是做java后端的,HR告訴我測開也是偏后端的,所以我就試試,經過了幾天的
面試,在這過程中整個人非常焦慮。。。廢話不多說,先上面經。
一面 53分鐘(項目+基礎+算法)
一面約的是晚上19.30,整個人很緊張很緊張,結果面的是一個年輕的面試官,人很好。
1.簡短的自我介紹。
2.介紹我的項目,balabala講了大概20分鐘,中間穿插著細節提問,有業務方面的,有技術方面的。
3.說一下悲觀鎖與樂觀鎖。
4.說一下http和https的區別。
5.TCP和UDP的應用場景。
6.http請求頭包含哪些字段。
7.斐波那鍥數列了解么?(了解)。
8.動態規劃相比遞歸來說有什么優點。
9.算法題,判斷鏡像二叉樹。(用遞歸寫得)
10.分析一下算法的時間復雜度,空間復雜度。
11.redis了解么,如何進行redis頁面緩存。
12.項目中日志是如何實現的。
13.項目中前端向后端傳數據是怎么傳的。
14.hadoop的數據包是基于什么協議的。
15.項目中登錄功能如何實現的,使用了哪些技術。
16.cookie和session的區別。
17.反問。
二面 50分鐘左右(項目+網絡+數據庫+算法)
一面面試完以后看起來面試官很滿意??(哈哈,小哥哥人真的不錯),直接給我安排了二面,讓我等等,
兩分鐘后二面面試官上線,
是一個年齡30出頭的面試官,看起來有點嚴肅,立馬緊張起來(0.0)
1.簡短的自我介紹。
2.簡單的問了下實習期間做的一個大數據平臺項目。
3.網絡五層。
4.應用層常見協議。
5.http協議返回狀態碼(1xx-5xx)(之前復習了2-5的,面試官說1呢?我說沒有1吧哈哈哈,后來想起了,尷尬)
6.Https有哪些改進。
7.數據庫優化方面(比如數據庫慢查詢),我回答了一大堆,起始面試官想問建立索引表的方式
8.索引的左對齊原則/最左原則(這個是真沒復習到),卡了很長時間,感覺面試官有點不耐煩了...
9.算法,大概就是傳遞東西,只能向左右手邊傳遞,小朋友0向右傳遞,傳遞n次后最后回到小朋友手里,問傳遞路徑,
一個動態規劃問題,感覺好難,做了大概一半,
面試官問我思路,我也沒怎么回答上來,后來面試官直接開始給我講解開來哈哈哈(后來下來查,蒙對了一部分。。。)
10.反問。
三面? 57分鐘(算法+JVM底層) 面試官氣場很強,我變得很緊張很緊張。。。
一二面面試連續,二面到9.20結束,面試官說等下我給你叫三面,可能是太晚了都下班了,我在那傻等了一個小時
沒有任何反應,啊哈哈,第二天給HR打電話幫我約的第三天的
下午兩點三面。
1.手撕單例算法
2.單例模式中對象什么時候初始化
3.JVM構造
4.基本數據類型(比如int i)在內存中是怎么存的
5.類對象什么時候加載的
6.static方法和非static方法的區別
7.static的原理(沒答出來)
8.手撕:一個整數型數組,判斷是否存在一個數,這個數前邊的數比小,后邊的比它大,返回這個數的下標
(使用標記數組做)
9.ArrayList的屬性length存在與內存的什么地方(哭死,這都什么問題嘛....)
10.對這個算法如何優化,使它的空間復雜度變為O(1)(使用自定義變量對這個數組一次遍歷存儲,
大概說了下思路)
11.設計題:寫日志類滿足多線程向文件中寫日志,設計一下需要實現哪些方法,說一下大概思路。
(多線程剛開始說放在線程隊列里,面試官說那不是線程阻塞了么,后來想到
使用時間片,設定一個變量例如賦值5ms,時間片使用結束后掛起,讓下一個線程寫,輪循寫。
面試官說OK,我也不知道他滿不滿意ing....)
12.問實習公司以及實習情況。
13.希望工作的base選擇
14.從哪了解的測開崗位。
15.反問,技術棧,有幾次面試。
三面結束我以為會另約時間,給HR打電話說在房間等著,還有一次面,我....
四面 35分鐘(項目+java基礎) 感覺面試官問問題間隔時間有點長,感覺在拖時間?(小聲BB)
1.自我介紹。
2.又把一面的項目講了一遍,balabala
3.將項目細節問了一些,比如排行榜的評分算法。
4.對于項目的多用戶高并發高訪問量的解決辦法。
5.橫向擴展系統(面試官問的Nginx負載均衡,說了半天才說到點上。。)
6.使用過哪些java框架。
7.實習項目:大數據平臺又介紹了一下。
8.集群維護遇見了哪些問題,怎么解決的。
9.如何使用HQL對Hive中數據進行處理。
10.從輸入url到頁面渲染中間過程,如果網絡距離太長,怎么解決(我說使用路由器轉發,面試官說算了,不了解也無所謂???一臉懵逼....)。
11.java的GC算法。
12.聊了一下碩士期間的課題,我是推薦系統方面的,面試官跟我聊了一下電影推薦系統的系統設計,包括架構,
推薦算法等等。
13.java零拷貝(一臉懵逼,不會),面試官看我卡了一會,說沒關系,這個不會無所謂...(第二次無所謂....)
14.linux操作:怎么看應用的cpu使用率(回答top命令)面試官:OK
順豐科技 1面? 技術面? 時長30分鐘 7月30號
1 自我介紹 (介紹完之后,面試官哈哈哈哈哈大笑,你這很熟練啊?)
2 項目介紹
3 說一下垃圾回收和算法(講完之后,來一句,你這背的很熟啊?,我說我理解啦?,然后他來一句為啥要理解,啊??)
4 說說Spring
5 Springboot和Spring的區別(自己加的,是怎么簡化的,底層如何實現的)
6 redis數據結構,持久化方式
7? mybatis 如何獲取自增ID
8? mybatis? 一二級緩存
9? 設計模式工廠模式講講
10 我講完了,你有啥要問的嗎? 問了幾點
1 面試流程是啥樣的,一面多久能收到通知,
2 和面試官閑聊,哄得他眉開眼笑,哈哈哈
順豐科技2面? HR面 30分鐘? 8月9號
1? 自我介紹
2? 職業規劃
3? 報學校專業是怎么考慮的?
4? 工作城市
5? 你是獨生子女嗎?
6? 那你有女朋友嗎?
7? 那你們出來面試都了解過哪些企業?
8? 有沒有offer?
9? 說說你的優缺點?
10 到后期你們每個人手上有好幾個offer,哪些因素決定你們選擇這家公司?
11 你更傾向哪種公司?有什么特別的點?
12 你大學有沒有特別難忘的經歷或者項目分享一下的?
順豐科技 3面? 技術面 一小時 8月12號
?
1 自我介紹
2 大數據項目介紹
3 說說你對Kafka的理解
4 kafka的消費者組跟分區之間有什么關系?
5 kafka有5個消費者,4個分區,是如何消費?
6 kafka的分區有哪些方式,分區算法?
7 數據清洗的流程
8 數據清洗之后是落到哪里,數據量大嗎?
9 redis數據如何和mysql的數據保持一致
10 重大項目管理平臺講講?
12 導出功能如何根據自定義功能導出?
13 還有其他什么方式可以實現導出功能?
14 數據庫設計遇到什么問題?
問點java方面的知識
15 集合中 arrayList 和linkedlist有什么區別?
16 hashMap 說一下
17 hashMap 為什么設置初始化為16
18 hashCode 怎么對應桶的位置?
19 concurrentHashMap有什么特點?
20 線程同步有哪些方法?
21 線程同步使用哪些鎖?
22 有一個場景,現在一張表有幾十萬的數據,然后10個線程,
對它并發計算,然后計算完了之后通知,該怎么設計?(每個線程處理每個
線程的事情,然后做個通知)
23 說說分布式鎖?
24 SpringAop 用過嗎?
25 JVM內存管理核心算法
順豐算是面完了,接下來就等通知啦
浙江大華 一面? 20分鐘 8月 12號
?
1 自我介紹
2? SparkStreaming 如何保證消費kafka的數據不丟失等?
3? 說說集合你了解哪些?
4 hashMap講講?
5 自己實現了一個對象,然后重載在hashcode方法,這個時候還要不要重載其他方法?
(需要重寫hashcode 方法和equals方法)
6 在多線程環境中,然后保證使用的對象時線程安全的?(通過加鎖)
7 虛擬機的堆內存分為哪幾個區?
8 堆里面主要干什么?
9 堆里面能不能細分到哪些區?
10 不同的區使用的算法都是一樣的嗎?
11 springboot 和Spring的區別在哪?
12 Springboot是如何簡化哪些配置,具體是怎么實現的?
(和SpringbootApplication 注解相結合,在main中通過調用run方法來加載 監控任務執行時間,創建應用上下文,程序運行參數等相關配置)
?
浙江大華二面? 8月19號? 時長37分鐘(本來約的17號,面試官時間給忘了,第二天還專門打過來電話道歉,感覺面試官真的很好?)
?
1 自我介紹
2 自己都搭建過大數據集群嗎?
3 如何搭建的集群,舉幾個例子介紹一下?跑過哪些項目?
4? 說說Spark的工作機制
5? 說說Spark的合并操作
6? 項目介紹,舉一個例子項目難點,如何解決。
7? 分割數據使用什么進行分割?
8 輸入的類型和輸出的類型分別是什么?
9? 輸出的結果存儲到哪里?
10 那Hbase的表結構是什么樣的?
11 表中的key是什么,value是什么?
12 你哪些原始日志是哪哪塊采集過來的?
13? 另一個項目介紹一下,解決什么難題?
14? 數據庫優化做了哪些操作?
15? 項目中使用了redis,如何操作的,為什么要使用redis?
16 怎么解決雙寫一致性?
17 使用的用戶量是多大?
18 假如用戶量大的情況下,那會出現哪些性能瓶頸?
19? redis的并發是多大?
20? 項目中如何使用多線程?舉個例子
21? 那累加的線程如何和其他線程做交互的?
22? 線程安全的容器有哪些?
23 java虛擬機里面的垃圾回收機制有哪些?
24 項目中有沒有用哪些工具看過進程中有哪些線程,JVM內存的情況。
25 場景題
HR面? 16分鐘? 8月22號
1自我介紹
2 工作的意向城市
3 剛才在面試哪家公司?
4 現在進度最快的公司是哪家?
5 拿到哪幾家offer,是否談過薪資等
6 實習了多久,介紹一下印象最深刻的項目
7 你了解互聯網這邊的薪資一般是多少?(說的25萬左右)
8 你的興趣愛好有哪些?
9 我們這邊西安也有分公司,看你對地點這塊有什么要求沒?
10 因為你面的是提前批,所有offer會在九月出發出。
整個大華面試下來感覺沒有太大壓力,非常愉快,二面面試官項目這塊問的還算可以,自己也答出來了,問我想去哪個崗位,
說他們大數據這塊有四個方向。和HR小姐姐也聊得挺開心,希望一切都順利,可以收到意向書吧。求一波offer
阿里 一面? 8月12號? 23分鐘
1 自我介紹
2 說說垃圾回收和相應算法
3 那并發量很高時,使用哪種算法?(復制算法)
4 介紹一下項目
5 那你在這個項目中最大的成就感是什么?
6 那你開發項目主要的優勢在哪?(怎么感覺不像是面試,在聊天,哈哈哈)
7 在網頁上輸入一個URL,說說它所經歷的過程(DNS尋址,TCP連接,Http請求,http響應,頁面渲染,TCP關閉連接)
8 很多服務器,那請求落到哪臺服務器上,是通過什么策略?(通過nginx的ip_hash策略)
9 平常有沒有了解一些新知識(docker,springcloud)
10 hashMap實現原理
11 個人規劃
12 那你現在的技術薄弱點在哪里,怎么去突破?
到我提問
1讓面試官講了一下新零售事業部主要做哪一塊,
2面試流程
阿里 二面 8月 20號 時長55分鐘 涼透????
1 自我介紹
2 競賽介紹
3 數學建模競賽介紹
4 論文介紹
20分鐘過后,
接下來的35分鐘 我感覺自己經歷了一次痛切心扉的打擊,??
面試官不問問題,他說讓我自己說自己擅長的,然后他深入去探討,看
我解決問題的能力,我說好。。。。。。。?
我說我集合這塊還行,
他問,那你知道hash的實現機理是啥?他能帶來哪些好處?通過我的回答,他接著問,B+樹索引的核心在于什么?
我們知道樹有很多種,為什么要選擇b+樹,而不選擇其他?數據庫索引有很多種,哪一種索引對應的是b+樹實現的?
圖的算法你清楚嗎?最短路徑問題,最少成本問題?(說完之后,面試官說,為啥你們現在學習的時候,不在一些深度上做一些努力,
看得都比較膚淺,這對你們以后的發展有很大限制??)
接著問我java哪些比較熟悉,我說集合,多線程,JVM等都可以聊聊,他說 那你說說你在里面用的哪些技術比較有挑戰性的問題,我們聊聊,
聊概念沒啥意思。。。。?整的我不會說啦我準備說項目中用到哪些技術,他打斷了,說未必是項目中的,就說你體會到的。。。。
我說線程吧,就聊多線程并發,然后他聽完我說的,然后說那你在項目中有用到JVM嗎?
項目中開發你的垃圾回收算法用的哪一種?(我說復制算法,
他聽了之后說 what??? 啥? 我說復制算法,他接著說 啥?復制算法?
我咋沒聽過,我說copying,他說還是不懂,。。。。。我就講了內容等)說完之后,
他說算了我覺得你這塊沒理解,我們換個話題。。。。。。
那我們聊聊數據庫事務吧,你知道分布式事務嗎?什么是兩段式,三段式,你用過嗎?
你們應該都做過研究吧?這都是最基本的問題,你應該都會把。它的實現原理是什么?
好吧,我一句話還沒說,面試官替我說完啦。。。我說完,面試官說那我們換個話題,
你對這些不了解。。。。。
java的設計模式你知道哪幾種? 你講一下什么是修飾者模式?應用到哪些場景?或者
策略模式,這兩種都講一下。我說完之后,又說了一句,那我們換個話題,你對這不了解。。。
我下去還專門聽了一遍錄音,我回答的哪里有錯了。。。。
那我們再換個話題,那就問個本質,為啥String這個類型是不可變的對象,原理是什么?
那BIO 和非阻塞式IO有什么區別,它具體是怎么實現的?
上面的問題回答完之后,就50分鐘了,面試官說時間差不多啦,你有啥想問的。我當時聽完 內心真的很崩潰,
不是我不會,而是他全程那個語氣真的是很牛逼很牛逼那種,不屑的語氣,我回答一個,他說我覺得你這個不太會,我們換一個
換題等等。連說了好多遍,你全程也沒問幾個問題吧,面完我就知道我涼透了,當時也沒抱著進三面的想法
就換了個語氣,說那個我們也面完了,一般面試完都不會問面試官對我的評價,因為我覺得那很不禮貌,他說沒事沒事,然后他就說,
說實在的,你們研究生啊,就應該多做做啥啥啥,巴拉巴拉5分鐘,我全程在聽它對我的“批評”,我臉上笑嘻嘻,嗯嗯,我知道,態度賊誠懇,
把他夸了一遍,說真的太感謝面試官您啦,對我真的是用心良苦啊,我會好好虛心接受您的教誨,然后就掛了
阿里 一面 8月 22號 時長? 63 分鐘
?
20號面完二面之后,當時覺得涼透啦,也沒抱什么希望,但誰知道22晚上8點又打過來電話,
說做個面試,問我方便不,我說可以,面了有20分鐘左右,我問這是一面還是啥,面試官說
對,之前那個掛了,然后我們這邊撈過來的,我的天??? 不會是那個面試官發了個慈悲吧
...........................................................................更新................................................................
1 自我介紹
2 論文介紹
3 Spark流式計算過程
4 Spark如何進行分桶
5 SparkStreaming 和MapReduce比較,提升的性能在哪?
6 SparkStreaming 的實時體現在哪?
7 簡單介紹一下單例模式
8 簡單介紹一下工廠模式
9 說一下代理模式和策略模式
10? JVM內存模型簡單介紹一下
11 哪些是線程私有,哪些是線程共有
12 哪個不會發生內存溢出?
13 方法區產生內存溢出怎么判斷?
14 類加載存在內存中的哪一塊?(類的元數據在方法區,class對象在堆區。)
15 垃圾回收的一些算法
16 年輕代,老年代分別用什么算法?
18 創建一個線程有幾種方式?
19 怎么啟動一個線程?
20 JDK里面 線程池的定義
21多線程里面,有什么機制可以保證線程安全?
22 voletile如何保證線程安全?
23 那使用voletile 有什么缺點?
24 synchronized用到靜態方法和非靜態方法有什么區別?(修飾靜態方法,
作用于當前類對象加鎖,修飾非靜態方法,作用于當前對象實例加鎖)
25 threadlocal了解嗎? 講講這個
26 threadLocal 一般是怎么區分的?不同的線程之間是怎么隔離的?
蘑菇街一面 java開發工程師? 44分鐘 涼經
1 自我介紹
2 說說JVM原理、內部分配
3 new對象的過程
4 new一個對象時是如何知道給它分配多大的空間?(JDK64位,創建一個對象占24字節,32位 占12字節)
5 項目介紹
6 說說HDFS (跳躍很快啊)
7 HDFS寫操作
8 寫操作中如何判斷客戶端向哪一臺datanode中上傳第一個block塊。(通過就近原則)
9 那客戶端是怎么通過距離來判斷哪臺datanode 離他近或者離他遠(看客戶端到達datanode
之間的網絡跳轉的次數來判斷,如果在同一個路由器下面,那距離都一樣,直連,只需要跳轉一次)
10 第二次上傳block塊根據什么原則?(就遠原則,保證安全性,防止全部上傳到一個機架上,如果機器壞了,數據就會丟失等。)
11 場景題 過濾出評論中的敏感詞
(想法1:通過正則表達式)
(想法2:布隆過濾器)
(想法3:通過和b+樹類似的字典樹(DFA算法)來實現,字典樹的每個節點保存每個字符,
那他所形成的路徑就代表一條一條的字符串,進行查詢時,如果匹配到敏感詞的字符串,那就過濾出去)。
12 Spring IOC、AOP底層實現
13 Spring ioc中的單例模式和原型模式適用場景,什么時候用單例模式,什么時候用原型模式。
14? 我看你對大數據比較了解,那你說說Spark(spark的內部構造,實現原理,解決了什么問題,運用場景等)
15 MapReduce 設計時為什么要設計成 map,reduce的操作,它解決了什么問題。
16 說說kafka的原理
17 服務端從kafka中去拉數據,服務端的空間永遠是有限的,拉完怎么判斷所有人都拉完了?
上述的問題基本都答出來了,但是不知道為啥掛了,可能要求很高。???
?
滴滴一面? 后端面試 8月23日 56分鐘? 涼涼
?
因為項目中
1 自我介紹
大數據:
2? spark任務的執行流程
3? Spark任務調度有幾種方式?(任務是怎么分配給executor)(調度算法)
4? Spark任務分配方式有幾種方式?
5? yarn的資源調度?
6? 寬窄依賴具體講講
7? 寬依賴是不是要進行shuffle
8? shuffle操作有幾種方式
9? Spark任務產生小文件太多,該怎么處理?(合并小文件的方式有幾種)
(例如sql,函數,distrubutedBy)
10? hive如何實現UDF的詳細過程(客戶端繼承UDF類,然后打包 )
11 hive sql解析看過嗎?
12 Spark sql解析有哪幾個步驟? 具體如何操作的(spark內核的sql解析)
(把sql如何拆成多個job)
java技能
1 線程的狀態有幾種?
2 等待有哪幾種方式?
3 常用的線程池有幾種?
4 定時的線程池有幾種?
5 Spingboot部署的時候用的哪個容器,內部用的哪個線程池?
6? 多線程過程中用過哪些鎖?
7 鎖主要分為幾大類?
8 synchronized底層是怎么實現的? 和其它鎖有什么區別?
9 Lock鎖講講 ReenTrandLock講講? 怎么優化這個重入鎖?(通過編譯器方式優化)
10 比如嵌套鎖嵌套了好幾層,編譯器如何優化這些代碼?
11 鎖優化有哪些方式?(鎖消除,增大粗度等)
12 鎖消除通過什么參數可以控制?
13 數據庫事務有幾種?(數據庫隔離級別)
14 事務的傳播機制?(7種)
15? 事務嵌套開啟一個事務,用那種傳播機制?(required)
16? 繼承上一個事務(使用support)
17 搭一個通信框架(使用tcp) 用socket編程搭,客戶端、服務端等。
18? NIO了解過嗎? 怎么做的優化? 分為幾個階段?每個階段是做什么的?
19? RPC了解嗎?常用的RPC框架有哪些?(基于二進制協議的)如(dubbo)
20 任務調度有用過嗎?(使用springBoot如何快速創建一個定時任務(用一些組件))
21 底層如何實現調度的?
滴滴面試,簡歷上寫了大數據知識點,剛好面的那個部門是搞金融風控的,還是對Spark源碼進行開源的,撞槍口啦,
后期大數據復習的比較少,掛了也無怨了,狀態變為待筆試,還好秋招還有一次機會。
騰訊一面? 8月24日? ?65分鐘?
1 自我介紹
2 簡單介紹一下項目中引用Springboot是解決了什么問題,有什么優點?
3 mybatis和hibernate框架有什么區別?
4 使用muybatis有沒有用到om對象?
問了一下我主攻的語言是啥,我說java語言
5 java語言中 重寫和重載有什么區別?
6 我看你用到kafka,kafka主要解決什么問題呢?
7 kafka如何實現消息是有序的?
8 kafka如何實現多線程的消費?
9 hashmap和hashtable 有什么區別?
10 簡單介紹一下java的生命周期有哪些階段嗎?
11 對數據庫了解嗎?? 一個場景,現在數據庫執行過長,如何對它進行優化?
12 簡單談一下數據庫中的悲觀鎖和樂觀鎖怎么理解的?
13 說一下數據庫有哪些索引類型,有什么優缺點?(主鍵索引)
14 談談數據庫的事務(ACID特性)
開始問操作系統啦
15 操作系統的劃分有哪些?
16 什么是死鎖?死鎖產生有哪些條件?(互斥條件,請求與保持條件,循環等待條件,不可剝奪條件)
17 進程間通信有哪些方式?(管道,信號量,信號,消息隊列,共享內存,套接字等方式)
18 tcp協議有哪些計時器?它分別是做什么的?
19 操作系統之間有用戶態和內核態,他們之間有什么區別?
20 為什么需要內核態?什么時候進入內核態?
21 有用過內存緩存嗎? 如redis?
22? redis是通過什么方式進行持久化的?(RDB和AOP)
網絡知識
23? tcp協議的三次握手?
24 hppts的協議了解嗎?
數據結構
25 介紹一下有哪些常見的算法,并且哪些是穩定的,哪些不穩定,以及時間復雜度
26 對云計算有了解嗎?
27 比如云計算有哪些服務和應用場景
28 AWS? 了解嗎?
算法題
26? 拆分子數組? leetcode 410
給定一個由非負整數和整數m組成的數組,可以將數組拆分為m個非空連續子數組。
編寫算法以最小化這些m個子陣列中的最大總和。
總體來說 問的問題都屬于簡單的問題,都算答出來了,代碼題也寫出來了,希望能進二面
growingIO? ?8月30號 ?一面 ? 時長1小時40分鐘
1 ?自我介紹
2 ?三個項目分別介紹一下
3 ?說一下你們的權限設計
4 ?說一下每個項目的技術棧
5 前端采用什么設計的?(沒有采用前后端分離的思想,用的html+css+jquery+ajax)
6 sql優化,剛開始是怎么做的,后期又是怎么去優化的?
7 說一下mysql的索引類型(主鍵索引,唯一索引,普通索引,全文索引)
8 hash索引的使用場景是啥?(只能用于"="的過濾,不能用于范圍查詢,不能避免全表掃描,不能利用部分索引鍵查詢)
9 ? 如果使用like查詢,會不會走索引?(一部分會走,一部分不會走,只有不以%開頭的時候,才會使用到索引,例如'前%' 走索引,'%前%' 不走索引,'%前' 不走索引)
10 有沒有使用 explain字段去分析sql語句,它有哪些字段(使用explain分析時,重點關注幾個字段:
type:這是一個非常重要的參數,連接類型,常見的有:all (全表掃描), index(全索引文件) , range(只檢索給定范圍的行) , ref (非唯一索引掃描,即返回所有匹配某個單獨值的行), eq_ref (唯一性索引掃描,對于每個索引鍵,表中有一條記錄與之匹配), const(表示通過索引一次就可以找到) , system(表只有一條記錄) , null 八個級別。
key: 顯示查詢語句實際使用的索引。若為null,則表示沒有使用索引
rows :根據表統計信息及索引選用情況,大致估算出找到所需的記錄所需要讀取的行數,值越大越不好)
11 Springboot 返回json字符串的話 使用哪個注解?(RestController)
12 mybatis 如何使用的?(通過xml 和注解式兩種方式 對于小系統而言,使用注解式快速,簡單,缺點是SQL有變化時都需要重新編譯代碼)
13 mybatis 如何防止sql注入
14 mybatis 緩存用過嗎? 一二級緩存
15 mybatis 如何實現批量插入(在xml中使用foreach循環插入,),
批量刪除( #{item} ),
批量更新(foreach實現循環插入)等的語句?
16 ?說說hashMap?
17 為什么初始值16,以及為什么擴容是2倍
18 hashMap源碼 擴容是怎么實現的(resize,rehash)
19 hashMap 是線程安全的嗎?(不是,因為HashMap在put的時候,插入的元素超過了容量
(由負載因子決定)的范圍就會觸發擴容操作,就是rehash,這個會重新將原數組的內容重新hash到新的擴容數組中,
在多線程的環境下,存在同時其他的元素也在進行put操作,如果hash值相同,可能出現同時在同一數組下用鏈表表示,造成閉環,
導致在get時會出現死循環,所以HashMap是線程不安全的
20 線程池有哪些核心參數(corepoolsize,maximumPoolSize,keepAliveTime,unit,workQueue)
21 創建一個定時任務的線程池用哪個(newScheduledThreadPool)
22 創建線程池的好處?
23 類的生命周期知道嗎?(加載-驗證-準備-解析-初始化-運行-卸載)
24 單例模式說說??
25 單例模式的缺點和特點(缺點:沒有接口,可擴展性不強)
26 JVM內存分配
27 JVM垃圾回收一般什么時候出發minor GC
28 redis有哪幾種淘汰策略?(6種淘汰策略?
volatile-lru:從設置了過期時間的數據集中,選擇最近最久未使用的數據釋放。
volatile-random:隨機選擇一個數據進行釋放
volatile-ttl:選擇馬上就要過期的數據進行釋放操作
allkeys-lru:從數據集中(包括設置過期時間以及未設置過期時間的數據集中),選擇最近最久未使用的數據釋放
allkeys-random:隨機選擇一個數據進行入釋放
noeviction:不刪除任意數據(但redis還會根據引用計數器進行釋放),這時如果內存不夠時,會直接返回錯誤。)
29 redis實現生產者消費者模型(使用list數據結構 lpush 放數據,rpop拉數據)
30 redis實現生產一次,消費多次
31 redis 有幾種數據結構(五種,string,hash,list,set,sorted set)
32 set 和sorted set 有什么區別?
33 分布式鎖有沒有使用過?(使用setnx()方法,expair()方法)
34 如果redis中有1億個key,其中有10萬個key是已知的固定前綴的key開頭的,如何
將他們全部找出來?(使用scan命令 scan cursor ?match ?pattern count count ?例如: scan ?0 ?match ?k1* count ?100 )
35 為什么不用keys命令?(會使內存卡頓,服務器消耗過大)
36 緩存雪崩,緩存穿透,緩存擊穿都是怎么造成的,有什么解決辦法?
37 重載和重寫有什么區別?
38 jdbc的使用流程?(1 注冊數據庫驅動 2 建立數據庫連接 3 創建一個Statement對象,4 執行sql語句,5 處理結果集,6 關閉數據庫連接)
39 現在有T1、T2、T3三個線程,你怎樣保證T2在T1執行完后執行,T3在T2執行完后執行?使用join操作
(?? ??? ?Thread t1 = new Thread(new ThreadTest("T1"));?
?? ??? ?Thread t2 = new Thread(new ThreadTest("T2"));?
?? ??? ?Thread t3 = new Thread(new ThreadTest("T3"));
?? ??? ?t1.start();
?? ??? ?t1.join();
?? ??? ?t2.start();
?? ??? ?t2.join();
?? ??? ?t3.start();
?? ??? ?t3.join();
)
40 什么是java中的原子操作?(所謂原子操作是指不會被線程調度機制打斷的操作;這種操作一旦開始,就一直運行到結束,中間不會有任何 context switch)
41 什么是悲觀鎖和樂觀鎖?
43 數據庫中如何實現樂觀鎖?(通過版本號version 和行鎖)
44 ?數據庫中如何實現悲觀鎖?(通過加排它鎖實現 例如 select * from A where id=1 for update)
45 ?java中實現悲觀鎖?(通過synchronized,reentranlock 實現)
46 ?java中實現樂觀鎖?(通過CAS算法實現)
47 說說二分查找?以及里面注意的關鍵點
48 ?說說快速排序,如何實現,如何去做?
49 ?等比數列如何求遞推公式?
?
9月3號??
博主是屬于2020屆應屆碩士畢業生
從九月份開始再也沒有尋找工作,因為前期的面試使我已經拿到了7個offer,分別為
1 海康威視大數據開發崗
2 順豐科技大數據開發崗
3 快手數據研發崗
4 大華 大數據開發崗
5 哈羅 java開發崗
6 金山云 大數據開發崗
7 用友 Java 開發崗
最后選取了海康威視研究院 大數據開發崗。? 如果有想了解大數據的技術,有興趣的可以聯系私信博主,要一下聯系方式。
總結
以上是生活随笔為你收集整理的2020-JAVA-大数据-面试汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux的系统时钟,【总结】linux
- 下一篇: RDMA Mellanox官方使用VPI