博主太痛苦了,沒有任何資源,一我的奮戰着(可能別人家的孩子都有礦吧,嚶嚶嚶),對java面試也沒有經驗,對面試毫無經驗,因此少吃了一餐飯,省下的錢買了份資料,我把它分享出來, 目的是想給和我同樣沒有任何資源,同時想在互聯網混口飯吃的底層人員一些幫助。前端
話很少說,下面是正文java
我是一名在 IT 行業闖蕩了 8 年的程序員,從最初剛畢業時的迷茫到找到一份工做的喜悅,從一個小白慢慢成長爲一個行業老兵,從一個初創型的公司到一個幾千人的大型互聯網公司,從初級程序員到架構師、技術經理,回顧這 8 年來,也有許多可圈可點的地方。程序員
最近幾年公司的大小招聘,社招、校招都有參與,面試過許多大牛,也遇到過不少職場小白。有 10 年 工做經驗的,也有剛剛畢業來面外包的、擔任技術一面的面試官,深知技術面試之重要,來面試的不乏一輪遊的,看着有些同窗基礎浮誇、作着重複的項目也沒有任何總結沉澱,自我介紹徹底不知道在說啥等等諸如此類的現狀,這也讓我很是苦惱,面試也很累的,一坐就大半天,聊十幾二十我的,若是你還在東拉西扯不知所云,抑或是對面試官問的問題答非所問,基本在面試官內心已經給你 pass 掉了,之因此面試還在持續,只是由於職業素養罷了,爲了避免讓面試者感受太挫敗,畢竟大老遠的跑來求職都不容易,可是心裏裏卻已經沒有聊下去的慾望了。想一想本身也是從那個層次一步步走上來的,也經歷了許多坎坷,以爲有必要把個人面試經驗跟你們分享一下,但願能幫助你們找到一份滿意的工做。web
面試須要有的放矢、機會是留給有準備的人。我相信通過你的努力,必定會有滿意的收穫。我挑出來面試官常問的知識點給你們有的放矢地強化,有助於快速提升,哪怕是臨時抱佛腳也能跟面試官搭上話。面試
適宜閱讀人羣:算法
準備面試的初(中)級 Java 程序員或者面試官
文章分爲八個部分,從 Java 基礎、Java 核心、Java 進階、Java 框架、分佈式中間件、MySQL、JVM 到如何準備技術面試。先幫讀者梳理知識點,這是咱們的硬實力,打鐵還需自身硬;而後咱們還要有準備的去打好面試這場仗,不管是技術一面、二面 仍是 HR 面試,都要認真準備,把本身的軟實力也充分發揮出來,畢竟不是每一個面試官都能一眼看透你的價值,你須要把發光點主動地表現出來。sql
下面開始進入主題。數據庫
1. 面向對象的特性有哪些?apache
封裝、繼承、多態。編程
還有一個抽象,問三個就說上面三個,問四個就再補一個抽象
2. Java 中 Override 和 Overload 有什麼區別?
不能縮小父類方法的訪問權限
,且只能比父類拋出更少的異常
;被覆蓋的方法不能爲 private
,不然在其子類中只是新定義了一個方法,並無對其進行覆蓋。同一個類中
能夠有多個名稱相同的方法,但這些方法的參數類型、個數、順序至少有一個不相同。追問:什麼狀況下方法不能被重寫?
方法被定義爲 final
的時候不能被重寫。
3. 抽象類和接口有什麼區別?
抽象類:
abstract
修飾;new
關鍵字來實例化對象;能夠不包含抽象方法
,抽象類中能夠有具體的方法;
接口:
interface
修飾;均爲抽象方法
;追問:什麼狀況下選擇接口,什麼狀況下選擇抽象類?
當要建立不帶任何方法定義和成員變量的基類,應該選擇接口;當有方法定義和成員變量的時候,應該選擇抽象類。
4. JRE、JDK、JVM 有什麼區別?
JRE
: Java 運行環境,爲 Java 的運行提供了所需環境。JDK
: Java 開發工具包,提供了 Java 的開發環境和運行環境,JDK 包含 - JRE 還有 Java 編譯器、Java 調試和分析工具等。JVM
是 Java 虛擬機,負責將 Java 字節碼轉換爲機器碼,正是 Java 可以跨平臺的緣由。它還提供了內存管理
、垃圾回收
和安全機制
等。5. 值傳遞和引用傳遞有什麼區別?
按值的拷貝傳遞
,傳遞的是值的拷貝,也就是說傳遞後就互不相關了。6. JDK 中經常使用的包有哪些?
lang
:這個是系統的基礎類;io
:這裏面是全部輸入輸出有關的類,好比文件操做等;nio
:爲了完善 io 包中的功能,提升 io 包中性能而寫的一個新包;net
:這裏面是與網絡有關的類;util
:這個是系統輔助類,特別是集合類;sql
:這個是數據庫操做的類。7. 訪問修飾符 public、protected、 default、private 的區別?
類的成員不寫訪問修飾符默認爲default
,默認對於同一個包的其餘類至關於公開(public),對於不是同一個包的其餘類至關於私有(private)。
受保護(protected)對子類至關於公開,對於不是同一個包沒有父子關係的類至關於私有。
Java中,外部類的修飾符只能是public或默認,類的成員(包括內部類)的修飾符能夠是以上四種。
8. 數據基礎類型有哪些?
基礎類型有 8 種:byte、boolean、char、short、int、float、long、double,注意 String 不屬於基礎類型, 屬於對象。
9. final 有什麼用?
用於修飾類、屬性和方法;凡是引用 final 關鍵字的地方皆不可修改!
10. 經常使用的集合類有哪些?
最經常使用的集合類是 List 和 Map。List 的具體實現包括 ArrayList 和 Vector,它們是可變大小
的列表,比較適合構建、存儲和操做任何類型對象
的元素列表。 List 適用於按數值索引
訪問元素的情形。Map 提供了一個更通用
的元素存儲方法。Map 集合類用於存儲元素對(稱做」 鍵」 和」 值」),其中每一個鍵映射到一個值。
11. HashMap 和 Hashtable 有什麼區別?
HashMap 運行 key 和 value 爲 null
,而 Hashtable 不容許。Hashtable 是線程安全
的,而 HashMap 是非線程安全
的。
12. HashMap 的實現原理是什麼?
HashMap 基於 Hash 算法
實現的,咱們經過 put(key,value) 存儲,get(key) 來獲取。當傳入 key 時,HashMap 會根據 key. hashCode()
計算出 hash 值
,存儲時,若是出現 hash 值相同的 key,此時有兩種狀況,若是 key 相同,則覆蓋原始值;若是 key 不一樣,即出現衝突,則將當前的 key-value 放入鏈表中。獲取時,直接找到 hash 值對應的下標,在進一步判斷 key 是否相同,從而找到對應值。
13. ConcurrentHashMap 的實現原理是什麼?
ConcurrentHashMap 是 Java1.5
中引用的一個線程安全
的支持高併發
的 HashMap 集合類。該類包含兩個靜態內部類 HashEntry
和 Segment
,前者用來封裝映射表的鍵值對
,後者用來充當鎖的角色
。Segment 採用了很是精妙的「分段鎖」策略
,每一個 Segment 對應一個 HashEntry 數組,當對 HashEntry 數組的數據進行修改時,必須首先得到對應的 Segment 鎖。
14. ArrayList 和 LinkedList 的區別是什麼?
數組
,LinkedList 的實現是基於雙向鏈表
;15. 如何實現 Array 和 List 之間的轉換?
Arrays. asList(array)
;toArray()
方法。16. 在 Queue 中 poll() 和 remove() 有什麼區別?
二者都是返回第一個元素,並在隊列中刪除返回的對象。不一樣的是若是沒有元素 poll()
會返回 null
,而 remove() 會直接拋出異常
。
17. 哪些集合類是線程安全的?
Vector、Hashtable 都是線程安全
的,而 HashMap 是非線程安全
的,不過 Java. util. concurrent 併發包中,ConcurrentHashMap 是線程安全
的。
18. 什麼是 Java 反射?
在 Java 運行時
環境中,對於任意一個類
,可以知道
這個類有哪些屬性和方法
,對於任意一個對象
,可以調用
它的任意一個方法
。
19. Java 怎麼實現動態代理?
Java 中,經常使用的動態代理實現方式有兩種,一種是利用 JDK 反射機制生成代理
,另一種是使用 CGLIB 代理
。JDK 代理必需要提供接口
,而 CGLIB 則不須要,能夠直接代理類
,是基於繼承當前類的子類實現的。
20. 進程和線程有什麼區別?
重點在系統調度和單獨的單位
,也就是說進程是能夠獨 立運行的一段程序
。CPU 調度和分派的基本單位
,他是比進程更小的能獨立運行的基本單位。二者關係:一個線程只能屬於一個進程,而一個進程能夠有多個線程,但至少有一個線程,資源分配給進程,同一進程的全部線程共享該進程的全部資源。
追問:GC(垃圾回收)知道嗎?
垃圾回收線程是特殊的守護線程
,守護線程是運行在後臺
的一種特殊進程。它獨立
於控制終端而且週期性
地執行某種任務或等待處理某些發生的事件。
21. 建立線程有哪幾種方式?
建立線程有三種方式:
Thread
類重寫 run
方法;Runnable
接口;Callable
接口。22. 什麼是多線程,多線程的優劣?
多線程:多線程是指程序中包含多個執行流
,即在一個程序中能夠同時運行多個不一樣的線程來執行不一樣的任務。
多線程的好處:
能夠提升 CPU 的利用率
。在多線程程序中,一個線程必須等待的時候,CPU 能夠運行其它的線程而不是等待,這樣就大大提升了程序的效率。也就是說容許單個程序建立多個並行執行的線程來完成各自的任務。
多線程的劣勢:
線程也是程序,因此線程須要佔用內存,線程越多佔用內存也越多; 多線程須要協調和管理,因此須要 CPU 時間跟蹤線程; 線程之間對共享資源的訪問會相互影響,必須解決競用共享資源的問題。
建立線程池的方式有多種,這裏你只須要答 ThreadPoolExecutor 便可。
ThreadPoolExecutor() 是最原始的線程池建立,也是阿里巴巴 Java 開發手冊中明確規範的建立線程池的方式。
24. 線程池的經常使用參數有了解嗎?
ThreadPoolExecutor 包含如下七個參數:
前兩個參數能夠這麼理解,若是運行的線程少於 corePoolSize,Executor 則能夠不排隊直接添加新的線程;若是大於等於 corePoolSize,則將請求加入隊列,若是沒法加入,則建立新線程;若是超出 maxinumPoolSize,任務被拒絕。
25. 怎麼保證線程安全?
26. synchronized 和 Lock 有什麼區別?
27. 什麼是死鎖?
死鎖是指兩個或兩個以上的進程在執行過程當中,因爲競爭資源或者因爲彼此通訊而形成的一種阻塞的現象。
追問:怎麼避免?
28. ThreadLocal 是什麼?有哪些使用場景?
當使用 ThreadLocal 維護變量時,ThreadLocal 爲每一個使用該變量的線程提供獨立的變量副本,因此每個線程均可以獨立地改變本身的副本,而不會影響其它線程所對應的副本。
ThreadLocal 的經典使用場景是 session 管理(不一樣的線程對應不一樣的 session)和數據庫連接(爲每一個線程建立不一樣的連接)。
29. 你瞭解哪些設計模式?
30. 簡單工廠模式和抽象工廠模式有什麼區別?
31. Spring 框架的優勢有哪些?
32. 什麼是 Spring AOP?
即面向切面編程,經過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。它將業務邏輯的各個部分進行隔離,使開發人員在編寫業務邏輯時能夠專心於核心業務,從而提升了開發效率。主要體如今事務處理、日誌管理、權限控制、異常處理等方面。
33. 什麼是 Spring IoC?
即 inverse of control(控制反轉),是 Spring 的核心,是一種建立對象的思想。將建立對象的權力交給 Spring 容器,其實就是讓 Spring 容器幫你建立對象,而你不須要在 Java 代碼中 new 對象了。
34. Spring 經常使用的注入方式有哪些?
35. Spring 自動裝配 bean 有哪些方式?
Spring 配置文件中 節點的 autowire 參數能夠控制 bean 自動裝配的方式:
36. @Autowired 是作什麼用?
@Autowired 是一個註釋,它能夠對類成員變量、方法及構造函數進行標註,讓 Spring 完成 bean 自動裝配的工做。
37. Spring Boot 有什麼優點?
Spring Boot 繼承了 Spring 優勢,使得開發更加方便快捷。
38. Spring Boot 配置文件有哪幾種類型?
配置文件有 . properties
格式和 . yml
格式,它們主要的區別是書法風格不一樣。
39. Spring Cloud 是什麼?
Spring Cloud 是基於 Spring Boot 的一整套實現微服務的框架。它它利用 Spring Boot 的開發便利性巧妙地簡化了分佈式系統基礎設施的開發,提供了微服務開發所需的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分佈式會話和集羣狀態管理等組件。
40. Spring Cloud 的核心組件有哪些?
固然,除了以上還有不少,就不一一列舉了。
41. MyBatis 和 Hibernate 的區別有哪些?
42. ZooKeeper 是什麼?
ZooKeeper 是一個分佈式的,開放源碼的分佈式應用程序協調服務,是 Google 的 Chubby 一個開源的實現,是 Hadoop 和 HBase 的重要組件。它是一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分佈式同步、組服務等。
43. ZooKeeper 集羣選主和同步的機制是什麼?
ZooKeeper 的核心是原子廣播,這個機制保證了各個 Server 之間的同步,實現這個機制的協議叫作 ZAB 協議。ZAB 協議有兩種模式:分別是恢復模式和廣播模式。
44. 集羣中有 3 臺服務器,宕機 1 臺,這個時候 ZooKeeper 還可使用嗎?
能夠,根據選票過半的選舉原則,所以集羣節點最好爲奇數;單數服務器只要沒超過一半的宕機就能夠繼續使用;因此 ZooKeeper 集羣的容災數量 =(集羣總節點數 - 1)/2;也就是說 3 臺服務器集羣的話,最多容許 1 臺宕機。
45. Redis 是什麼?都有哪些使用場景?
Redis 是一個使用 C 語言
開發的高效緩存內存數據庫
。
Redis 使用場景:
46. 你使用過 Redis 的哪些經常使用功能?
47. Redis 支持的數據類型有哪些?
Redis 支持的數據類型:string、list、hash、set、zset(sorted set)。
48. Redis 和 Memcache 有什麼區別?
49. 什麼是緩存穿透?怎麼解決?
50. 緩存和數據庫之間怎麼保證雙寫一致性?
51. Redis 持久化有幾種方式?
52. Redis 怎麼實現分佈式鎖?
Redis 分佈式鎖通常使用 setnx(set if not exists)指令,只容許被一個程序佔有,佔用成功了就能夠繼續執行,失敗了就只能放棄或稍後重試,使用完調用 del 釋放鎖。
僞代碼示例(這裏只是簡述,實際應用沒有那麼簡單的,感興趣的同窗能夠詳細查一下資料):
53. 消息隊列的使用場景有哪些?
54. 消息隊列包含哪些核心角色?
55. JMS 和消息隊列的關係?
JMS(Java Messaging Service)是 Java 平臺上有關面向消息中間件的技術規範,經過提供標準的產生、發送、接收消息的接口簡化企業應用的開發,翻譯爲 Java 消息服務。它是 Java EE 中定義的一組標準 API,它自身並非一個消息服務系統。
56. ActiveMQ 的基本使用?
Linux 下安裝 ActiveMQ:下載 activemq 壓縮包(apache-activemq-5.13.0-bin.tar.gz)解壓,執行 apache-activemq-5.13.0/bin/activemq,檢測 activemq 是否安裝成功:netstat -an | grep 61616
。
ActiveMQ 前端控制檯端口默認 8161 端口,在 jetty.xml 中的 jettyPort 對應的 port 能夠改爲你想要設置的端口。部署完畢後能夠打開 http://localhost:8161/admin/ 進入控制檯頁面,帳號密碼默認 admin。
在 conf/activemq.xml 中 61616 的默認端口來自 transportConnector 對應的 URI 地址,若是想要修改或新增端口,也能夠在這個地方新增或修改。
ActiveMQ 啓動命令爲 activemq start,中止命令爲 activemq stop
,查看運行狀態命令爲 activemq status
。
57. ActiveMQ 消息傳輸模式
點對點模式
在點對點模型中,一個消費者對應一個生產者,生產者將消息放入隊列中,當消費者請求隊列中的消息時,消息會從隊列中取出,並投遞給消費者,消息投遞後會從隊列中刪除,這樣就能夠保證消息只能投遞給一個接收者。並且消息發送客戶端與接收客戶端沒有時間上的依賴,發送客戶端能夠在任什麼時候刻發送信息到隊列,而不須要知道接收客戶端是否是在運行。
發佈/訂閱模式
一個生產者產生消息發送後,能夠被多個消費者進行接收。消息會發送給一個主題,與隊列相似,多個接收者均可以監聽一個主題。但與隊列不一樣的是,消息主題的全部訂閱者都會接收到此消息。而且必須建立一個訂閱者以後,才能消費發佈者的消息,並且爲了消費消息,訂閱者必須保持運行的狀態。
58. ActiveMQ 的消息持久化策略
消息持久性對於可靠消息傳遞來講是一種比較好的方法,即時發送者和接受者不是同時在線或者消息中心在發送者發送消息後宕機了,在消息中心重啓後仍然能夠將消息發送出去。消息持久性的原理很簡單,就是在發送消息出去後,消息中心首先將消息存儲在本地文件、內存或者遠程數據庫,而後把消息發送給接受者,發送成功後再把消息從存儲中刪除,失敗則繼續嘗試。
ActiveMQ 的消息持久化的默認機制是 KahaDB,還有 JDBC 不過通常不用,KahaDB 可用於任何場景, 提升了性能和恢復能力。消息存儲使用一個事務日誌和僅僅用一個索引文件來存儲它全部的地址。KahaDB 是一個專門針對消息持久化的解決方案, 它對典型的消息使用模式進行了優化。在 Kaha 中,數據被追加到 data logs 中。當再也不須要 log 文件中的數據的時候, log 文件會被丟棄。
配置方式:在 conf/activemq.xml 文件中
59. 數據庫的三範式是什麼?
列的原子性
,即列不可以再分紅其餘幾列;60. ACID 分別指的是什麼?
61. SQL 的內鏈接、左鏈接、右鏈接有什麼區別?
內鏈接是把匹配的關聯字段顯示出來;左鏈接會讀取左邊數據表的所有數據,即便右邊數據表沒有對應數據。右鏈接會讀取右邊數據表的所有數據,即便左邊數據表沒有對應數據。
62. MySQL 索引是怎麼實現的?
MySQL 官方對索引的定義爲:索引(Index)是幫助 MySQL 高效獲取數據的數據結構。提取句子主幹,就能夠獲得索引的本質:索引是一種數據結構,而這些數據結構會以某種方式指向數據,從而實現高效查找數據。目前主流的數據庫引擎的索引都是 B+ 樹實現的,索引的性能也是更好的。
63. 怎麼驗證 MySQL 的索引是否知足需求?
須要根據查詢需求來判斷配置哪一種索引,肯定索引後,能夠經過 explain 命令來查看執行計劃,確認是否知足需求。explain 語法:explain select * from table
。
64. 說一下數據庫的樂觀鎖和悲觀鎖?
65. MySQL 問題排查都有哪些手段?
netstat -ntp |grep 46888
),經過線程號排查是哪一個應用(ps -ef | grep pid
);66. 如何作 MySQL 的性能優化?
select *
,列出查詢字段;67. 你瞭解類加載過程嗎?
加載
:經過一個類的全限定名來獲取其定義的二進制字節流,將這個字節流所表明的的靜態存儲結構轉化爲方法區的運行時數據結構,在堆中生成一個表明這個類的 Class 對象,做爲方法區中這些數據的訪問入口;驗證
:主要做用就是確保被加載的類的正確性,主要包含文件格式的驗證,元數據驗證,字節碼驗證和符號引用驗證;準備
:主要爲類變量分配內存並設置初始值;解析
:主要是虛擬機將常量池中的符號引用轉化爲直接引用的過程。符號引用指的是一個標示,而直接引用是指向內存中的地址;初始化
:主要爲類的靜態變量賦予正確的初始值,JVM 負責對類進行初始化,主要對類變量進行初始化。68. 什麼是雙親委派模型?
當收到加載一個類的請求時,子類加載器並不會立刻去加載,而是依次去請求父類加載器加載,一直往上請求到最高類加載器:啓動類加載器。當啓動類加載器加載不了的時候,依次往下讓子類加載器進行加載。當達到最底下的時候,若是仍是加載不到該類,就會出現 ClassNotFound 的異常。
69. 你熟悉 JVM 哪些垃圾回收算法?
標記—清除算法
:標記無用對象,而後進行清除回收。缺點:會帶來另外一個新的問題:內存碎片化。複製算法
:首先仍是先標記處待回收內存和不用回收的內存,而後將不用回收的內存複製到新的內存區域,這樣舊的內存區域就能夠所有回收,而新的內存區域則是連續的,解決了內存碎片化的問題,可是缺點是會損失掉部分系統內存,通常是新生代使用。標記—整理算法
:首先仍是「標記」,標記事後,將不用回收的內存對象壓縮到內存一端,此時便可直接清除邊界處的內存,通常是老年代使用。70. 你熟悉 JVM 哪些垃圾回收器?
這裏簡述幾個經典經常使用的便可:
Serial
:單線程串行垃圾回收器。ParNew
:多線程的串行垃圾回收器。Parallel
和 ParNew
相似是多線程的,但 Parallel 是吞吐量優先的收集器,能夠犧牲等待時間換取系統的吞吐量。CMS
:一種以得到最短回收停頓時間爲目標的收集器,採用標記—清除算法。71. 你熟悉 JVM 哪些調優參數?
-Xms2g
堆初始值 2G-Xmx2g
堆最大可用內存 2G-XX:NewRatio=4
新生代: 老年代內存比例 = 1:4-XX:PrintGC
觸發 GC 時打印日誌-XX:PrintGCDetails
觸發 GC 時打印詳細日誌-XX:UseSerialGC
使用 Serial 串行回收器XX+UseParNewGC
使用 ParNew + Serial Old 垃圾回收器組合1. 明確技術方向,匹配崗位要求
學歷、工做年限、技能、項目經歷、軟實力。找準定位,是要作技術仍是偏管理。劃重點:作技術就不要提管理。面試官很是討厭技術不紮實的人,明明是面試技術,卻老是提管理。這裏不是說不須要管理能力,而是要分清楚主次,只有你的技術使面試官滿意了,管理能力才能爲你加分。
2. 盤點我的價值,找亮點
《天道》中的一句話,博主分享給你們,不要太把本身當人,由於在 HR 們的眼中,咱們都是商品,你要把本身的價值以最直觀的方式體現出來,不要扯其餘沒用的。明確了本身有什麼價值,你須要問本身一個問題:以行業標準衡量,你以爲你是哪一個領域的專家?由於你只有是某個領域或者方向的專家,性價比高,HR 們纔會以爲這筆買賣很划算。不要自慚形穢,你之因此平庸,是由於你沒有深挖本身的亮點,在簡歷最後一欄自我評價裏,把亮點一一列舉出來,若是你實在是找不到,那總作過項目吧,能吃苦吧,善與人相處吧,逐條寫出來。
劃重點:項目經驗多不表明能力強,要總結而不是敘述,千萬不要逐個項目長篇敘述業務模塊,面試官對你作過的項目業務邏輯根本不感興趣,你須要把項目中你用過的技術列舉出來,最好是隻寫最近的或者你最有成就感的項目,把你瞭解的技術棧全都寫上。
3. 內推和獵頭,機會大不少
選擇公司也很重要,是互聯網公司仍是傳統企業,傳統企業相對重視業務,而互聯網公司比較重視技術。公司主要是作什麼產品、用的什麼技術 。若是你的資歷不夠,學歷雙非,但技術很強,想去大廠也不是沒機會。劃重點:找內推、找獵頭推薦要比本身投簡歷要機會大得多。
4. 知己知彼百戰不殆
薪資、福利、平臺優點、晉升機制、工做環境、人際關係、工做強度、社會地位等等,把這些全都列出來,作個表格,排好優先級。如今業界對於跳槽漲薪的幅度大都控制在 30% 之內,瞭解一下你的城市、這個企業這個技術方向的平均薪酬來參考。劃重點:知己知彼纔好跟 HR 談薪。
5. 一份簡歷闖天下?不可取
不一樣的企業、崗位須要的技能不一樣,你須要制定有針對性的簡歷。
劃重點:
6. 練習自我介紹
直接劃重點:
最後,拿得出手的經典項目準備一個,刷刷面試題,還要準備一些非技術類問題,好比這個必問的經典問題:你爲何離職?關於這個問題,說內心話,不必那麼執拗。不要回答「上個公司加班太多,工做生活不能兼顧諸如此類 「,這樣回答雖然沒毛病,可是卻不是標準答案,試問哪一個互聯網公司不加班?若是有,誰不想去?這個問題標準答案是:個人我的職業規劃的緣由,我須要一個更大的平臺來施展,不斷地見識、學習和成長。
最後還要準備一兩個問面試官的問題,標準答案:貴公司當前使用的主流技術棧有哪些?若是我順利經過面試,我將會加入哪一個團隊?我將來的工做方向是什麼?千萬別扯別的,諸如大家公司薪酬大概是多少?(保密的不知道嗎),大家加班多很少?(廢話)。管住好奇心,這些問題等你過了技術面試,留着 HR 來回答你。
你們看看,面試前都要準備那麼多,若是是資深工程師崗位或者技術專家崗位,你可能起碼要準備 3 個月,即使是初/中級工程師,面試前也要認真準備 1 個月,這樣你的面試成功率纔會高不少。
寫了不少,你們發現我很愛說「劃重點」、「標準答案」、「千萬別扯」 之類,由於真的就是這樣。彷彿回到高三時,語文老師教我答題,他的口頭禪是:不要亂寫、不要你覺得、按標準答案去「套」。很是感謝我當時的語文老師(語文沒有拖個人後腿,偷笑),以理科狀元的優異成績考入華科。因此,我認爲求職並非一場對等的談判,而是一場考試(固然若是你是 BAT 系的大神,另當別論,這裏不糾結哈),高考有考霸,那麼面試呢天然也會有面霸,都有套路,這取決於你對套路的掌握程度。
其實還有不少話,擔憂思路一旦打開,噴涌而出,剎不住車了(大多也是在倒苦水,面試官也很無奈,哈哈,把面試者在面試過程當中的不按套路出牌的地方梳理總結一下,給後來的人以指引,不至於掉坑)。