上周面试回来后写的Java面试总结,想进BAT必看
上周陪同之前一起工作的同事去面試(喬治,小袁,鵬飛(面試人)),第一站是去深圳,第二站上海,第三站杭州。面試什么公司我在這里就不多說了,你們知道是一線公司就行。其實本來真的沒打算寫這篇文章,主要是自己的記憶力不是很好,再者是最近好多人詢問2018年最新的面試題有點多,我實在回答不過來,而且怕為了避免重復回答,給自己省點力氣,干脆就在這里統一回復了。
說實話,雖作為陪同人,面試的時候我是不可以一同進去面試的,鵬飛在面試完后出來也是憑借他模糊的記憶,來慢慢回憶當時HR問的幾個問題,以下是我整理的一些面試題,雖然不是很完整,但差不多也是必問的幾個題目了(前言告訴大家,面試的答案我就不一個一個的寫出來了,畢竟等級的不同,回答時的答案也不同,這全靠大家自己慢慢領悟了)我能幫的也只有這么多了。以下便是面試題。
第一站:(深圳)
1.?多個線程同時讀寫,讀線程的數量遠遠?于寫線程,你認為應該如何解決 并發的問題?你會選擇加什么樣的鎖?
2.?JAVA的AQS是否了解,它是?嘛的?
3.?除了synchronized關鍵字之外,你是怎么來保障線程安全的?
4.?什么時候需要加volatile關鍵字?它能保證線程安全嗎?
5.?線程池內的線程如果全部忙,提交?個新的任務,會發?什么?隊列全部 塞滿了之后,還是忙,再提交會發?什么?
6.?Tomcat本身的參數你?般會怎么調整?
7.?synchronized關鍵字鎖住的是什么東??在字節碼中是怎么表示的?在內 存中的對象上表現為什么?
8.?wait/notify/notifyAll?法需不需要被包含在synchronized塊中?這是為什 么?
9.?ExecutorService你?般是怎么?的?是每個service放?個還是?個項? ??放?個?有什么好處?
第二,第三站
Spring
1. 你有沒有?過Spring的AOP? 是?來?嘛的? ?概會怎么使??
2. 如果?個接?有2個不同的實現, 那么怎么來Autowire?個指定的實現?
3. Spring的聲明式事務 @Transaction注解?般寫在什么位置? 拋出了異常 會?動回滾嗎?有沒有辦法控制不觸發回滾?
4. 如果想在某個Bean?成并裝配完畢后執???的邏輯,可以什么?式實 現?
5. SpringBoot沒有放到web容器?為什么能跑HTTP服務?
6. SpringBoot中如果你想使??定義的配置?件?不僅僅是 application.properties,應該怎么弄?
7. SpringMVC中RequestMapping可以指定GET, POST?法么?怎么指定?
8. SpringMVC如果希望把輸出的Object(例如XXResult或者XXResponse)這 種包裝為JSON輸出, 應該怎么處理?
9. 怎樣攔截SpringMVC的異常,然后做?定義的處理,?如打?志或者包裝 成JSON
10. 1.struts1和struts2的區別
11. .struts2和springMVC的區別
12. spring框架中需要引用哪些jar包,以及這些jar包的用途
13. springMVC的原理
14. springMVC注解的意思
15. spring中beanFactory和ApplicationContext的聯系和區別
16. spring注入的幾種方式
17. spring如何實現事物管理的
18. springIOC和AOP的原理
19. hibernate中的1級和2級緩存的使用方式以及區別原理
20. spring中循環注入的方式
MySQL
1. 如果有很多數據插?MYSQL 你會選擇什么?式?
2. 如果查詢很慢,你會想到的第?個?式是什么?索引是?嘛的?
3. 如果建了?個單列索引,查詢的時候查出2列,會?到這個單列索引嗎?
4. 如果建了?個包含多個列的索引,查詢的時候只?了第?列,能不能?上 這個索引?查三列呢?
5. 接上題,如果where條件后?帶有?個 i + 5 < 100 會使?到這個索引嗎?
6. 怎么看是否?到了某個索引?
7. like %aaa%會使?索引嗎? like aaa%呢?
8. drop、truncate、delete的區別?
9. 平時你們是怎么監控數據庫的? 慢SQL是怎么排查的?
10. 你們數據庫是否?持emoji表情,如果不?持,如何操作?
11. 你們的數據庫單表數據量是多少??般多?的時候開始出現查詢性能急 劇下降?
12. 查詢死掉了,想要找出執?的查詢進程?什么命令?找出來之后?般你 會?嘛?
13. 讀寫分離是怎么做的?你認為中間件會怎么來操作?這樣操作跟事務有 什么關系? 14. 分庫分表有沒有做過?線上的遷移過程是怎么樣的?如何確定數據是正 確的?
15. MySQL常用命令
16. 數據庫中事物的特征?
17.?JDBC的使用?
18. InnodB與MyISAM的區別
19. MySQL為什么使用B+樹作為索引?
JVM
1. 你知道哪些或者你們線上使?什么GC策略? 它有什么優勢,適?于什么 場景?
2. JAVA類加載器包括?種?它們之間的??關系是怎么樣的?雙親委派機 制是什么意思?有什么好處?
3. 如何?定義?個類加載器?你使?過哪些或者你在什么場景下需要?個? 定義的類加載器嗎?
4. 堆內存設置的參數是什么? 5. Perm Space中保存什么數據? 會引起OutOfMemory嗎? 6. 做gc時,?個對象在內存各個Space中被移動的順序是什么?
7. 你有沒有遇到過OutOfMemory問題?你是怎么來處理這個問題的?處理 過程中有哪些收獲?
8. 1.8之后Perm Space有哪些變動? MetaSpace??默認是?限的么? 還是 你們會通過什么?式來指定???
9. Jstack是?什么的? Jstat呢? 如果線上程序周期性地出現卡頓,你懷疑可 能是gc導致的,你會怎么來排查這個問題?線程?志?般你會看其中的什么 部分?
10. StackOverFlow異常有沒有遇到過??般你猜測會在什么情況下被觸 發?如何指定?個線程的堆棧????般你們寫多少?
多線程
1) 什么是線程?
2) 線程和進程有什么區別?
3) 如何在Java中實現線程?
4) 用Runnable還是Thread?
6) Thread 類中的start() 和 run() 方法有什么區別?
7) Java中CyclicBarrier 和 CountDownLatch有什么不同?
8) Java中的volatile 變量是什么?
9) Java中的同步集合與并發集合有什么區別?
10) 如何避免死鎖?
11) Java中活鎖和死鎖有什么區別?
12) Java中synchronized 和 ReentrantLock 有什么不同?
13) Java中ConcurrentHashMap的并發度是什么?
14) 如何在Java中創建Immutable對象?
15) 單例模式的雙檢鎖是什么?
16) 寫出3條你遵循的多線程最佳實踐
17) 如何避免死鎖?
18. 常用的線程池模式以及不同線程池的使用場景
Netty
1.BIO、NIO和AIO的區別?
2.NIO的組成?
3.Netty的特點?
4.Netty的線程模型?
5.TCP 粘包/拆包的原因及解決方法?
6.了解哪幾種序列化協議?
7.如何選擇序列化協議?
8.Netty的零拷貝實現?
9.Netty的高性能表現在哪些方面?
10.NIOEventLoopGroup源碼?
Redis
1.Redis與Memorycache的區別?
2.Redis的五種數據結構?
3.漸進式rehash過程?
4.rehash源碼?
5.持久化機制
6.reaof源碼?
7.事務與事件
8.主從復制
9.啟動過程
10.集群
11.Redis的6種數據淘汰策略
12.redis的并發競爭問題?
Hadoop
1.HDFS的特點?
2.客戶端從HDFS中讀寫數據過程?
3.HDFS的文件目錄結構?
4.NameNode的內存結構?
5.NameNode的重啟優化?
6.Git的使用?
7.Maven的使用
好了,到這里面試題差不多已經寫完了,如果以上的面試題題目你已經全部理解,全部能回答出來了,那么我可以在這里告訴你,你牛批,我服。
如果以上題目還不會的,還回答不上來的,那么你可以跟著我的腳步,我來介紹一下我總結出來的幾大體系。
以下就是我總結出來的幾大體系圖:
一、源碼分析
二、分布式架構
三、微服務
四、性能優化
五、Java工程化
總結:
以上就是我要說的寫的內容,希望以上的內容可以幫助到正在默默艱辛,遇到瓶疾且不知道怎么辦的Java程序員們,我能幫你的只有這么多了,面試題已經總結完了,我能幫的,也只有這么多了,希望大家在往后的工作與面試中,一切順利。
我有一個微信公眾號,經常會分享一些Java技術相關的干貨;如果你喜歡我的分享,可以用微信搜索“Java團長”或者“javatuanzhang”關注。
轉載于:https://www.cnblogs.com/java1024/p/8872851.html
總結
以上是生活随笔為你收集整理的上周面试回来后写的Java面试总结,想进BAT必看的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 十年老站吐血迁移实录
- 下一篇: 海尔联手软银机器人,进军服务机器人领域