說在最開頭:
說一下最近幾次面試大廠的經歷,害,一言難盡,都讓我覺得自己近期兩個多月都沒有學到東西,問的問題要說深入底層也深入了,但是你說是基礎嗎,其實也是,但就是沒有回答好,這跟自己面試技巧也有關係吧,不會展現自己,也不會引導面試官,去展示自己的長處。當然,在面試之前我也逛了N多次後花園,也刷了很多牛客網上的面經,感覺還是有很多的出入的。
下面我說一下自己面試的流程:
剛開始的時候面試官會讓自我介紹,閒聊一小會(主要是為了緩解緊張的氣氛),下面就進入了正題(以下面試題都是涉及到的,沒有一一都記清楚,記了個大概):
基礎篇(面試完後期又整理了一下)
1、Java語言有哪些特點2、面向對象和面向過程的區別3、八種基本數據類型的大小,以及他們的封裝類4、標識符的命名規則。5、instanceof 關鍵字的作用6、Java自動裝箱與拆箱7、 重載和重寫的區別8、 equals與==的區別9、 Hashcode的作用10、String. String StringBuffer和StringBuilder的區別是什麼?11、ArrayListflinkedList的區別12、HashMap和HashTable的區別13、Collection包結構, 與Collections的區別14、Java的四種引用, 強弱軟虛15、 泛型常用特點16、Java創建對象有幾種方式?17、有沒有可能兩個不相等的對象有相同的hashcode18、深拷貝和淺拷貝的區別是什麼?19、final有哪些用法?20、static都有 哪些用法?21、3*0.1==0.3返回值是什麼22、a=a+ b與a+ =b有什麼區別嗎?23、try catch fnally, try裡有return, fially還執行麼?24、Excption 與Error包結構25、OOM你遇到過哪些情況,SOF你遇到過哪些情況26、簡述線程、 程序、進程的基本概念。以及他們之間關係是什麼?27、線程有哪些基本狀態?28、Java 序列化中如果有些欄位不想進行序列化,怎麼辦?29、Java中10流30、Java 10與NIO的區別31、java反射的作用與原理
(以上加粗的是在面試的時候問到過的,哈哈,當時緊張一批,記得也不是很清楚了,其他是自己刷過的面試題,還是很有作用的)
JVM篇(這個是可以吊打面試官的必殺技)
1、知識點匯總2、知識點詳解:3、類加載與卸載4、簡述一下JM的內存模型5、堆和棧的區別6、什麼時候會觸發FullGC7、什麼是Java虛擬機?為什麼Java被稱作是「平臺無關的程式語言?8、Java內存結構9、對象分配規則10、描述一下JVM加載class文件的原理機制?11、Java對象創建過程12、類的生命周期13、簡述Java的對象結構14、如何判斷對象可以被回收?
(以上都是很重要的問題,必須都要會的一些知識點,你會了多少了呢?還有很多沒有整理出來,有點小懶了~)
多線程&並發篇(害,對於我來說,這個是最難的)
1、Java中實現多線程有幾種方法2、如何停止一個正在運行的線程3、notify0和notifyAll0有什麼區別?4、sleep0和wait0 有什麼區別?5、volatile 是什麼?可以保證有序性嗎?6、Thread 類中的start0和run0方法有什麼區別?7、為什麼wait, notify 和htftifyAll這些方法不在thread類裡面?8、為什麼wait和notify方法要在同步塊中調用?9、Java中interrupted 和isInterruptedd方法的區別?10、Java中synchronized 和ReentrantLock 有什麼不同?11、有三個線程T1,T2,T3,如何保證順序執行? '12、SynchronizedMap和ConcurrentHashMap有什麼區別?13、什麼是線程安全14、Thread類中的yield方法有什麼作用?15、Java線程池中submit0和execute(方法有什麼區別?16、說一說自己對於synchronized關鍵字的了解17、說說自己是怎麼使用synchronized 關鍵字,在項目中用到了嗎synchronized關鍵字最主要的三種使用方式:18、什麼是線程安全? Vector是一 個線程安全類嗎?19、volatile關鍵字的作用?20、常用的線程池有哪些?21、簡述一下你對線程池的理解22、Java程序是如何執行的
(多線程高並發這方面我主要也是結合了視頻在學習,只有理論的知識還是有點難的)
Spring篇(這個是我在面試中問的比較多的)
1、Spring的IOC和AOP機制?2、Spring中Autowired和Resource關鍵字的區別?3、依賴注入的方式有幾種,各是什麼?4、講一下什麼是Spring5、Spring MVC流程6、SpringMVC怎麼樣設定重定向和轉發的?7、SpringMVC常用的註解有 哪些?8、Spring的AOP理解:9、Spring的IOC理解10、解釋一下spring bean的生命周期11、解釋Spring支持的幾種bean的作用域。12、Spring基 於xml注入bean的幾種方式:13、Spring框架中都用到了 哪些設計模式?
(Spring還是很重要的,我面試的時候好幾個都是險過)
Mybatis篇
1、什麼是MyBatis2、MyBatis的優點和缺點3、#}和$}的區別是什麼?4、當實體類中的屬性名和表中的欄位名不一樣,怎麼辦?5、Mybatis 是如何進行分頁的?分頁插件的原理是什麼?6、Mybatis是如何將sq|執行結果封裝為目標對象並返回的?都有哪些映射形式?7、如何執行批量插入?8、Xml映射文件中,除了常見的selectinsertlupdae|delete標籤之外還有哪些標籤?9、MyBatis實現-對一有幾種方式?具體怎麼操作的?10、Mybatis是否支持延遲加載?如果支持,它的實現原理是什麼?11、 Mybatis的一 級、二級緩存:
(以上都是SSM框架必須都知道的,相信不需要我多說了吧)
SpringBoot篇
1、什麼是SpringBoot? 為什麼要用SpringBoot2、Spring Boot的核心註解是哪個?它主要由哪幾個註解組成的?3、運行Spring Boot有哪幾種方式?4、如何理解Spring Boot中的Starters?5、如何在Spring Boot啟動的時候運行-些特定的代碼?6、Spring Boot需要獨立的容器運行嗎?7、Spring Boot中的監視器是什麼?8、如何使用Spring Boot實現異常處理?9、你如何理解Spring Boot中的Starters?10、springboot常用的starter有哪些11、SpringBoot 實現熱部署有哪幾種方式?12、如何理解 Spring Boot配置加載順序?13、Spring Boot的核心配置文件有哪幾個?它們的區別是什麼?14、如何集成Spring Boot和ActiveMQ?15、如何重新加載Spring Boot上的更改,而無需重新啟動伺服器?16、Spring Boot. Spring MVC和Spring有什麼區別?17、能否舉個例子來解釋更多Staters的內容?18、Spring Boot還提供了其它的哪些Starter Project Options?
MySQL篇(當時好像沒有問到,腦子有點懵)
1、資料庫的三範式是什麼2、資料庫引擎有哪些3、InnoDB與MyISAM的區別4、資料庫的事務5、索引問題6、SQL優化7、簡單說一說drop. delete 與truncate的區別8、什麼是視圖9、 什麼是內聯接、左外聯接、右外聯接?10、並發事務帶來哪些問題?11、事務隔離級別有哪些?MySQL的默認隔離級別是?12、大表如何優化?13、分庫分表之後,id主鍵如何處理?14、mysq|有關權限的表都有哪幾個15、mysq|有哪些數據類型16、創建索引的三種方式,刪除索引
(這個當時刷題的時候沒有很注重,是大數據方面的知識)
Redis篇
1、Redis持久化機制2、緩存雪崩、緩存穿透、緩存預熱、緩存更新、緩存降級等問題3、熱點數據和冷數據是什麼4、Memcache與Redis的區別都有哪些?5、單線程的redis為什麼這麼快6、redis的數據類型,以及每種數據類型的使用場景7、redis的過期策略以及內存淘汰機制8、Redis 為什麼是單線程的9、Redis 常見性能問題和解決方案?10、為什麼Redis的操作是原子性的,怎麼保證原子性的?11、Redis事務
(mybatis不是很難,但是也不能忽視)
SpringCloud篇
1、什麼是SpringCloud2、什麼是微服務3、SpringCloud有什麼優勢4、什麼是服務熔斷? 什麼是服務降級?5、Eureka和zookeeper都可以提供服務註冊與發現的功能, 請說說兩個的區別?6、SpringBoot和SpringCloud的區別?7、負裁平衡的意義什麼?8、什麼是Hystrix?它如何實現容錯?9、什麼是Hystrix斷路器?我們需要它嗎?10、說說RPC的實現原理
(SpringCloud也是微服務炙手可熱的一部分,還是很有用的~)
Nginx篇
1、簡述一下什麼是Nginx,它有什麼優勢和功能?2、Nginx是如何處理一個HTTP請求的呢?3、列舉一些Nginx的特性4、請列舉Nginx和Apache之間的不同點5、在Nginx中,如何使用未定義的伺服器名稱來阻止處理請求?6、請解釋Nginx伺服器上的Master和Worker進程分別是什麼?7、請解釋代理中的正向代理和反向代理8、解釋Nginx用途
(Nginx結合自己的實戰項目還是很有說服力的)
MQ篇
1、為什麼使用MQ2、MQ優缺點3、Kafka、 ActiveMQ. RabbitMQ、 RocketMQ 都有什麼區別?4、如何保證高可用的?5、如何保證消息的可靠傳輸?如果消息丟了怎麼辦6、如何保證消息的順序性7、如何解決消息隊列的延時以及過期失效問題?消息隊列滿了以後該怎麼處理?有幾百萬消息持續積壓幾小時,說說怎麼解決?8、設計MQ的思路
(用於伺服器還是可以的,有解耦、異步、削峰的優點,哈哈專業了一點)
數據結構與算法篇
1、常用的數據結構2、數據裡有{1,2,3,4,5,6,7,8,9}. 請隨機打亂順序,生成一個新的數組(請以代碼實現)3、寫出代碼判斷一 個整數是不是2的階次方 (請代碼實現,謝絕調用API方法)4、假設今日是2015年3月1日, 星期日,請算出13個月零6天後是星期幾,距離現在多少天(請用代碼實現,謝絕調用API方法)5、 有兩個籃子,分別為A和B.籃子A裡裝有雞蛋,籃子B裡裝有蘋果,請用面向對象的思想實現兩個籃子裡的物品交換(請用代碼實現)6、更多算法練習
(數據結構與算法我主要是結合了一些左程雲老師的視頻,真的很詳細噠)
Linux篇
1、 絕對路徑用什麼符號表示?當前目錄、. 上層目錄用什麼表示?主目錄用什麼表示?切換目錄用什麼命令?2、怎麼查看當前進程? 怎麼執行退出?怎麼查看當前路徑?3、查看文件有哪些命令4、列舉幾個常用的Linux命令5、你平時是怎麼查看日誌的?
(這個主要是運維的,看的比較少)
偷偷告訴你:轉發這篇文章+關注我,後臺私信【學習】即可全部打包面試題及答案解析~
下面分享一下自己在準備面試中刷過的題:
1.Java核心知識點
2.2020年多家網際網路公司350道面試題
3.1000道網際網路工程師面試真題
4.面試視頻
左程雲老師數據結構與算法
Spring面試視頻
重中之重:簡歷篇
以上就是我在面試之前重點刷的一些面試題,除了面試題,還有很重要的一部分就是簡歷應該如何填寫,簡歷是面試官對你的第一印象,至少要讓面試官有想要深入了解你的衝動,吸引面試官的眼球,一張簡歷HR也就只會花十幾秒的時間,簡歷就像是一個門面,在很大程度上決定了你是否會進入到下一輪面試,以下是我跟前輩討的一點經驗:
為什麼說簡歷很重要?先從面試來說再從面試說起必知必會的幾點必須了解的兩大法則項目經歷怎麼寫專業技能怎麼寫排版注意事項其他一些小tips
寫在最後
經過這幾次的面試,感覺自己還是挺菜的,很多地方和知識都是只知其一不知其二,都是了解的表面知識,面試官一深入問就慌了,還是因為知識不夠牢固,不然就會脫口而出的。
其實覺得刷題還是很重要的,畢竟熟能生巧,然後再去運用這些知識點,而且我也相信每一份努力都會被看見,每份付出都會有回報,可能會遲到,但是不會缺席的(哈哈,一碗心靈雞湯幹掉)
領取方式
以上近1000頁的Java面試專題:Java核心知識點+350道面試題+1000網際網路面試題+學習視頻,全部已經打包好,需要完整內容的朋友轉發這篇文章+關注我,後臺私信【學習】即可免費獲取~