你的簡歷能幫你爭取到面試機會嗎

執筆記憶的空白發表於2018-01-09

最近我在幫朋友的公司招人,招人的第一步是要篩選簡歷,在這過程中,我發現雖然能收到很多簡歷,但實際能通過篩選能進入到技術面試流程的簡歷不多,估計10份裡不會超過4份能通過篩選。

    如果沒法通過技術面試,那麼候選人尚且能收集面試題,回家繼續準備,畢竟他和麵試官也交流過,也不算沒收穫,但對於這些沒法通過篩選的簡歷,簡歷的主人往往是無從得知的(公司不會主動通知),所以他們依然會混混沌沌,可以預想,在不短的未來,他們依然無法得到面試機會。

    本文就將從資深面試官的角度,和大家分享一下寫簡歷和傳送簡歷的經驗。本文的內容是根據java web輕量級開發面試教程改改編的,下面是正文。

   不知彼而知己,一勝一負,這句話能很好地反應當前大多數程式設計師投簡歷找工作的現狀。

    

    目前不少比較初級的候選人根本是通過廣發簡歷以求得到面試乃至跳槽的機會,殊不知這種不清楚面試關鍵點和不分析公司具體招聘需求的做法不僅會降低找到好工作的效率,更會讓大家和一些心儀的公司失之交臂,從而只能“湊合”地進入一個能滿足自己工資要求的一般公司。

    簡歷的作用在於向招聘方展示你和這個崗位的匹配度,從而去爭取面試機會,僅此而已。不過我見過不少候選人的簡歷非常花哨,篇幅也比較長,但在其中卻很難看出他能勝任這個崗位。

    要知道,招聘方只能從簡歷開始瞭解到候選人的資訊,所以簡歷不用面面俱到,簡明扼要地列出應聘方關心的要點即可;也不用千方百計地在格式上費腦筋,能讓招聘方感到一目瞭然即可。

1 簡歷中應包含的要素,一個都別落下

    在篩選簡歷時,招聘方往往需要從大量的簡歷中找到值得面試的(這個比例起碼是5比1),所以停留在每份簡歷上的時間不會很長。

    所以大家在準備簡歷應當注意“直接”兩字:能讓篩選人能直接地看出本人的教育背景、工作經歷和專案經理,並讓他們“直接”感到這份簡歷能納入考慮範圍。

    根據這個原則,大家可以按次序在簡歷中列出如下表所給出的要素。

簡歷中應包含的要素

目的

基本資訊,比如姓名,性別,年齡,目前所在城市,是否在職,手機和電郵等。

1 讓招聘方瞭解候選人的基本資訊。

2 以便招聘方通過手機等方式能聯絡到候選人。

按時間倒敘寫教育背景,一般只需要包含高中以上,初中高中等不必寫,但需包含專業和學歷學位資訊。

用專業和學歷學位等資訊向招聘方證明自己的技術背景。

總結性地列出自己所掌握的技能。比如:

1 有3年Java經驗,有2年Spring MVC經驗。

2有3年Oracle經驗,有2年Oracle調優經驗。

等等

一般這些總結點是和職務需求是一致的,這樣能讓招聘方直接地感受到該候選人的匹配度。

在這基礎上,可以適當列些能成功幫到自己的總結點。

按倒敘列出工作過的公司,並列出在這些公司裡的專案經驗,這部分的技能下文會詳細描述。

在專案經驗描述裡,能通過專案用到的技術經驗等,具體地給出自己“匹配”該崗位的證明。

可以列出和應聘崗位相關的培訓經歷和得到過的獎勵

這些屬於加分項,同等情況下能優先錄用

用少量篇幅列出自己的興趣和自我總結

讓招聘公司進一步瞭解候選人

2 該如何描述公司的工作情況

    這部分一般是按時間倒敘描述,比如可以按如下的格式寫:

    2015年11月到2017年10月,在xx公司,職務是Java高階開發。離職理由是想進一步發展。

   2012年2月到2015年11月,在xx公司,職務是Java初級開發。離職理由是想進一步發展。

    按此格式寫之前的公司情況

    這部分的內容應當儘量靠前,在羅列公司情況時,請大家注意如下的四個要點。

    第一,工作情況可以和專案經驗分開寫,一般會在後繼的專案經驗裡寫具體用到的技術框架以及所做過專案的細節,在這裡的工作情況描述裡,可以不用過於複雜,讓招聘方看到你之前的公司情況即可。

    第二,儘量別出現長時間的“空白期”,比如上份工作是2月份結束的,而下份工作是6月開始的。如果出現持續三個月以上的“不在職狀態”,需要在簡歷中說明情況,比如這段時間你是換城市發展了,或辭職複習考研或複習考公務員,總之得找個能說得過去的理由。

    第三,在簡歷上,儘量別讓人感覺你每份工作都做不長,但不能以此作假。比如我見過有候選人會合並公司,比如2016年11月到2017年3月在A公司,2017年4月到10月在B公司,他為了不讓招聘方感覺他換工作太頻繁,在簡歷上就寫2016年11月到2017年10月在B公司工作,而故意合併了A公司的經歷。這樣的話,如果遇到背景調查,會露餡,即使有些公司不做調查,在勞動手冊等材料上也能反應出真實的工作情況,所以這種做法有一定的風險性。

    這裡推薦的做法是,不要合併公司,但可以寫明理由,比如當時小王是被外派公司A以人力派遣的形式外派到B公司,但沒過多久A公司因某種原因不再具備人力派遣的資質了,這時小王就不得不終止與A公司的合同轉而和B公司簽約,這樣雖然看上去小王是換了公司,但實際上沒有。通過類似的合理解釋,招聘方就不再會質疑小王的工作能力和穩定性了。

    第四,可以寫上合適的離職理由,尤其當你短時間裡換工作比較多,可能引起招聘方的質疑的情況裡,更該考慮些合適的理由。

    合理的離職理由可以是,想為自己提供一個更大的發展空間,或想通過升級來獨當一面,以此進一步提升自己的能力,或公司因資金等方面的原因倒閉了。總之,這不是我主觀上不穩定,而是由於客觀原因導致我不得不換工作。

    而可能會導致沒面試機會的離職原因是,待遇問題(雖然大家心知肚明,但不能這樣寫),或無法承受大壓力,或同事領導排擠。這類理由往往會暴露出候選人的缺點,所以不建議大家採用。從這意義上來講,“合同期滿”也不是一個好的離職原因,因為如果候選人能力強,那麼為什麼原公司不和你續約呢?

    總之,在描述公司情況時,一旦出現會讓招聘方感覺你能力不強或不穩定時,一定得醒目地寫上足以信服的理由,這樣你的簡歷才會有機會被繼續被讀下去,進而你才會有技術面試的機會。

3 描述專案經驗的技巧

    之前已經提到過,招聘方非常注重候選人簡歷上相關技術專案經驗,因為這至少能有效地證明候選人實踐過相關技術,而不是隻具有理論知識。

    具體而言,招聘方首先會看候選人最近半年的專案裡用的是否是和本崗位相關的技術或框架,如果是,那麼說明候選人能在入職後能直接上手幹活。其次,會看候選人所有專案經歷中和本崗位所用技能(或框架)一致時間年限,一般招聘方會對這個年限有個最低的標磚,當然越長越好。

    如果大家自己感覺專案經歷明明很匹配但最終卻連面試的機會都沒,那麼問題大多就出在這個環節,下面我們來具體分析下描述專案經驗的技巧。

3.1儘量把學習培訓專案和畢業設計專案往商業專案上靠

    商業專案是指能掙錢的專案,和它對應的就是些不以掙錢為目的的學習專案或畢業設計專案。正因為客戶付了錢,所以商業專案的要求要遠遠高於學習或畢業設計專案,這也是為什麼招聘公司會看重商業專案而會主動過濾學習專案的原因。

    職位描述上的相關技能年限一般只是指商業專案經驗,而一般不會包括學習專案經驗。所以對於一些介於商業專案和學習專案之間的專案,儘量當成商業專案來寫。

    比如小張在大三時幫計算機系的王老師所在的ABC軟體公司幹了半年的活,如果小張在簡歷上寫:“在校期間,從x年x月到x年x月完成了xx系統,用到了xx技術”,那麼這多半會被當成類似於課程設計的學習經驗,但如果再加上如下關鍵性的描述:“這個系統是屬於xx公司的xx商業專案裡的一部分,我和另外三位開發人員做了半年,最終這個系統成功上線並在客戶xx公司的環境裡投入運營”,那這樣小張的商業專案總年限裡就能加上這半年時間了。

    又如小李在做畢業設計時,花了7個月的時間參與了導師的一個電商商業專案,他主要的工作是設計一個排程演算法,但也參與了一些諸如訂單管理模組的工作。如果他就平淡地寫一句,畢業設計是xx,畢業論文是xx,那麼招聘方看過就算了,也不會認為小李在做畢業設計時還有過商業專案經驗,這樣小李未免有些吃虧。

    但如果這樣寫:“在x年x月到x年x月的7個月裡,在畢業設計中,我參與了xx公司的xx電商專案,客戶方是x,我參與了訂單管理和xx模組,並設計了其中的排程演算法,在我的畢業論文裡,詳細介紹了這種做法”。文字沒修改太多,但足以讓小李增加7個月的商業專案經驗。

    在招聘過程中,我們經常會看到有些候選人參加了培訓學校,在裡面也做了一些實訓專案。如果這些專案是用來讓學生練手的,而沒有產生商業價值,那麼雖然這些專案可能來自真實專案,名字也叫xx實訓專案,但非常可惜,我們沒法把它當成商業專案。不過我們看到過一份印象比較深刻的簡歷,某候選人小丁在某三個月的時間內,一邊參加培訓,一邊還在朋友的公司裡兼職做著xx資訊管理系統的專案。那麼如果小丁能很好地在簡歷中很好地說明這個情況,而且還能在面試中很好地回答相應的問題,那麼我們不得不相信小丁在這個三個月裡確實做的是商業專案。

    對於高階程式設計師而言,他們的專案年限一般會超過3年,所以多挖掘出來的商業專案年限就屬於錦上添花了。不過不少公司在招聘時往往會設個最低年限標準(一般是1年半到兩年),這對剛畢業的或工作經驗小於2年的初級程式設計師而言無疑是道坎,所以如果大家處於這青黃不接的時間段裡,就更得挖掘這些“嚴格意義上還算商業專案”的專案經歷並寫到簡歷中,這至少能幫大家爭取到更多的技術面試機會。

    不僅如此,我們發現大多數初級程式設計師的水平其實也差不多,這時就得看誰的商業專案經驗豐富了。比如有次我們無法從兩位候選人中權衡,因為他們的綜合條件和麵試情況都差不多,但其中有一位在大三階段有段為期6個月的商業專案實習經驗,另一位沒有(也有可能他也有但沒當成商業專案來寫),這種情況下我們就錄用了有實習經驗的候選人了。

3.2通過具體案例來看專案經驗該怎麼描述

    假設某公司需要招一個Java高階開發,如下是職位描述。1、計算機及相關專業畢業,3年以上Java Web專案開發經驗;熟悉Linux平臺。 2、精通JAVA 程式設計,熟悉Spring、Spring MVC、Mybatis/Hibernate等開源框架,熟悉常用cache機制,Jsp/Servlet等技術。 3、熟悉Tomcat、Nginx等應用伺服器的配置和優化。4、熟悉資料結構和演算法,熟悉Java多執行緒開發。熟悉MySQL、Redis,熟悉資料庫索引。5、瞭解Web前端技術,包括HTML5/CSS/Javascript等。6、擁有良好的溝通能力和文件能力。7、勤奮而善於思考,願意不斷挑戰和提升自己。

    這裡先說個技巧,如果候選人能通過簡歷讓招聘方確信,在最近的專案裡他用到了不少和招聘崗位相關的技術,那麼他得到面試機會的可能性就會大大提升,因為招聘公司會認為候選人能入職後很快上手,而不會有太長的熟悉期。所以,我們可以按如下思路改寫最近做的一個專案。

    那麼我們就可以根據職位需求,從如下幾個方面來描述專案經驗。

    第一,簡要描述專案的背景,比如時間範圍,客戶是誰,專案規模有多大。

    從x年x月到現在(這個時間範圍至少是最近半年),我參與某外匯交易系統,客戶是xx銀行,這個專案組的構成是,1位專案經理外加10位開發,總共的規模大概在80個人月左右。

    第二,大致描述專案的需求和包含哪些模組,然後簡要說下你做了哪些模組,同時說下在這個專案用到的開發工具和主要技術點,這部分的描述如下所述。

    這個外匯交易系統包括掛盤撮合成交、實盤成交、反洗錢和資料批處理等模組,我主要負責了掛盤撮合成交模組,其中用到了Spring MVC架構,資料庫是Oracle,用Mybatis實現的ORM,該系統是執行釋出在Weblogic伺服器上,我們還用了Nginx來實現負載均衡,用Redis來快取資料。在這個專案裡,我還用到了JS實現了一些前臺頁面。

    這裡請大家注意如下的要點。

    1 招聘方在看簡歷時,更關注的是用的技術,所以這裡無需過度展開該專案裡的業務細節,比如無需用大篇幅來寫掛盤撮合成交模組裡幹了什麼事情。

    2 如果在這個專案裡用到了職位介紹裡給出的技術,應儘量寫在專案描述裡,但也要不能不顧事實地一股腦全寫上。

    第三,這裡可以在剛才的基礎上展開寫這些技術在專案裡是如何用的,以此來進一步證明你和所應聘職務的匹配度。同樣這裡也應圍繞技術,而別多寫業務細節,大家可以參考如下的範例。

    具體而言,在這專案的掛盤撮合成交模組裡,我們用到Spring MVC框架,用到了其中的攔截器來攔截非法的掛盤訂單請求,在資料庫層面,我們還把一些常用資料放入Redis裡,在Redis裡我們用到了list和set這兩種資料型別,而且還用到了master-slave模式。在使用Nginx時,我們是通過配置來避免出現Session粘滯的問題。

    如果大家只寫用到過Spring MVC和Nginx,那麼篩選簡歷的人看一眼就過了,最多認為大家用過。但如果大家再寫一些只有用過才能知道的細節點,比如Nginx的master-slave模式,那麼就會給招聘方留下比較深刻的印象,大家給他們的感覺就會是“不僅用過,而且熟悉(或精通)”。

3.3這些亮點你大多做過,不加在簡歷中有些可惜

    我們見過不少簡歷,在描述專案時,也能像上文一樣,能根據招聘職位的具體要求展示出自己的匹配點,這種簡歷屬於“達標”,即可以納入考慮範圍。在這個基礎上,如果大家在專案裡有下表列出的亮點,一定請寫上,這就是大家優於別人的地方。

可以加入的亮點

怎麼加

JVM調優方面

請參考第九章,裡面有專門的描述

設計模式方面

請參考第八章,裡面有專門的描述

資料庫調優方面

1可以說在專案裡用過批處理預處理事務等高階知識點。

2 能通過監控檢視哪些SQL語句需要調優

3 能通過索引執行計劃等方式對SQL語句進行優化

4 進一步的話,能通過資料庫叢集等方式分散對單個資料庫的壓力

5 如果做過,也可以寫一些關於NoSQL和大資料方面的經驗

Spring MVC等架構方面

1 用過其中諸如攔截器、AOP和事務等高階技能點。

2 在搭建框架時,能一起參與並熟悉如何通過框架來提升程式碼的可維護性。

學習和解決問題的能力特別強

比如可以寫,在專案裡,自己被分擔一塊大家都不大熟悉的技能,但你在短時間裡就完成了技術調研並把它用到專案裡。

能承擔大的工作壓力

1 由於客戶方催進度的原因,這個專案需要加班(總之加班原因不是你造成的)

2 在這種情況下,你能和你的團隊一起連續奮鬥,最終成功地完成進度。

    上述的一些技能要求未必會出現在職位描述裡,但確實都屬於亮點,而且在大家的專案裡,多少會用到些,所以不加有些可惜。當然,如果大家有其它的亮點,也可以加上,畢竟這能提升大家簡歷的價值。

3.4多寫些和專案管理相關的技能

    我們見過不少簡歷,在其中更偏重技術或諸如溝通和協作方面的能力,但事實上,專案管理方面的技能同樣重要。這裡可能會有個誤區,不少人認為初級程式設計師的簡歷無需寫專案經驗,但事實上,專案管理技能也是靠積累的,哪怕剛工作1個月,也能積累這方面的能力。

    在這方面,專案經理更偏重於如何根據專案需求合理地分配任務和協調進度,對於程式設計師而言,則可以在簡歷中寫專案管理的方式以及如何使用常見的管理軟體來提升專案管理的效率。

    這裡我們就以“敏捷開發”為例,向大家展示下如何介紹自己專案管理的方式。

    我們這個專案採用了敏捷開發的模式,具體而言,我們會根據專案總體需求,設定若干個釋出點,在時間上,每隔1個月就會設定一個。根據任務的優先順序,我們先會大致定下每個釋出時間範圍內的大致任務,而在每個釋出時間範圍內,會根據當前情況適當微調。

    而且,我們專案組還引入了“每天站立會議(Stand up Meeting)“的形式,每天我們專案組會用大致20分鐘的時間一起討論下每人已經完成的任務、要做的任務和遇到的問題,這樣即使遇到阻礙性的問題,也不會耽擱整個專案很久的時間。

    相關的內容無需多,大家只需列些“敏捷開發的必做點”,以此來證明自己實踐過這種開發方式即可。如果招聘公司也是採用類似的專案管理方式,那麼這點一定是個很好的加分項,即使招聘公司採用其它方式,比如瀑布模型,那麼你寫上這話,招聘方的評價就不會僅僅是“熟悉專案開發的技術”,而且還是“瞭解並實踐過XX專案管理方式,對專案管理有一定的瞭解”,這樣這份簡歷獲得面試機會的可能性就大大增加了。如果大家在專案裡用到的不是敏捷管理模式,而是其它的管理方式,也可以照著這個思路寫。

    此外,正規的專案多少或用些專案管理的工具,大家也可以在簡歷中列一些自己用過的,以此來進一步證明專案管理方面的經驗。在下表裡,我們總結了一些常見的開發人員能用得上的專案管理工具。

工具或軟體

專案管理方向

能起到什麼樣的作用

JUnit

單元測試

開發人員在開發完成後,可以用Junit來編寫自己程式碼的單元測試程式碼,執行單元測試程式碼後,能測試自己開發的模組。

Maven

構建專案

通過Maven,我們能給專案引入必備的jar檔案,也能方便地編譯(build)和釋出專案程式碼。

Jenkins(一般會和Ant一起用)

持續整合工具

我們一般會用重複的工作來發布不同版本的專案,比如執行ant指令碼,把生成的jar放入指定的Linux目錄並設定一些script檔案的可執行許可權。我們可以通過設定Jenkins指令碼來配置這些重複的工作。

Jira

缺陷或任務管理

每當遇到一個Bug或一個新任務,我們可以建一個jira,此時該Jira狀態是Open,程式設計師開始開發時,會設定成In Progress,完成開發後能設定成In QA,這樣測試人員就能介入測試,測試完成後,測試人員能把它設定成In UAT,一旦把該任務部署到生產環境,就能Close這個Jira。也就是說,通過Jira,我們能在專案裡很好地跟蹤和監控具體問題和任務的當前狀態。

Git

版本管理

通過Git或SVN等版本管理工具,在專案裡我們能方便地建立提交或回退各人的修改,還能分支版本。Git還有個好處:可以設定成“評審後才能提交”的模式,這樣某人要往主版本提交的程式碼必須要經過一人或多人的評審,這樣就能很好地控制程式碼的質量。

Autosys或Crontab

用於定時跑指令碼任務

比如我們要定時跑一個指令碼,我們就能通過Autosys或Crontab來設定,通過Autosys,我們更能方便地設定任務間的依賴關係,比如A任務跑好後B任務才能跑,而且還能檢視任務執行的狀態是成功還是失敗。

Sonar

程式碼質量管理

通過Sonar,我們不僅能檢查程式碼是否還有bug,還能檢視程式碼的質量,比如程式碼的註釋率是多少,單元測試覆蓋率是多少。Sonar還能給出一些程式碼方面的建議。總之,通過Sonar,我們能提升程式碼質量。

    具體而言,大家可以在簡歷加上如下的內容:在這個銀行(或其它)專案裡,我們用Maven來管理專案,用Git做版本管理,用Junit來做單元測試,用Jira來做bug管理,在程式碼上線前,我們還會用Sonar來掃描程式碼,如果發現一些可改進點,比如Junit覆蓋率不高,我們會及時改正。

    大家在簡歷中寫這部分的內容時請注意如下的兩個要點:

    1 在專案管理方面一般都會用到些工具,也就是說,大家可以寫上在自己專案裡用到的工具以及這些工具應用在哪些方面,但別什麼都不寫。

    2 面試官在看到相關描述後,一般會在面試中詢問些細節,比如Jenkin的配置方式等,也就是說,大家不僅要寫,還得適當地瞭解下這些工具的使用細節,以備面試時的提問。

4投送簡歷時的注意要點

    簡歷準備得再好,如果用不恰當的方式投遞出去,同樣無法得到面試機會,所以大家在傳送簡歷時,應當注意如下的要點。

4.1不要傳送“萬能“簡歷,根據具體的職位要求進行微調

    這可能是不少求職者的“通病”,他們往往就準備一份簡歷,然後看到一個合適的工作機會就發一份,也不關注這個公司的行業背景,也不看這個職位的具體要求。

    其實大家的簡歷是“閉門造車”的形式寫出來的,只能“儘可能”地描述自己掌握的技能(無法完全描述出你專案裡用到的所有技能要點),而每個公司的職務要求一定不會完全相同,所以大家在傳送簡歷前一定得根據具體的職位需求改寫相關的專案經驗描述,以求達到“匹配度”最高的效果。

    相反,如果大家針對不同的公司發的是同一份簡歷,那麼就得撞大運了,這樣一定會失去不少“匹配度不高“的面試機會,其實修改簡歷所用的時間不會太多,但效果一定是大相庭徑。

4.2在招聘會上,儘量要口頭說出你和這個職位的匹配點

    在招聘會上,大家只能是傳送同一份簡歷,在這種情況下,大家一定得儘可能地和招聘方交流幾句,同坦誠的措辭,口頭說下你和這個職位的匹配度,同時讓招聘方感受到你熱切想得到這份工作,這樣比“遞交簡歷無其它互動“的效果要好很多,至少能給招聘方留下些許印象。

4.3簡歷以正文形式傳送,別讓招聘方覺出敷衍

    在很多場合下,大家是通過郵件的方式傳送簡歷,在這種方式下,由於只是通過文字,無法面對面直接交流,所以大家應當儘量讓招聘方感受到自己求職的誠意,至少別讓他們感覺出“敷衍”。

    這裡來舉些可能會讓招聘方感受到“敷衍”的例子。

    例子1,從郵件的標題和稱謂上,看不出這份郵件是給本公司專門定製的。比如我們經常會收到這樣的簡歷,標題是“應聘xx崗位”,開頭是,尊敬的先生/女士,在其中第一沒有公司的稱謂,第二我們已經在招聘要求裡寫了負責收簡歷的是人事王先生,但這裡沒有具體的稱謂,這就會讓我們感覺這份郵件是通用的,而不是專門發給我們公司的。

    恰當的做法是,在郵件標題裡寫上具體的公司名,比如應聘xx公司的xx崗位,在開頭上寫,xx公司,尊敬的人事王先生,這裡如果沒有留收簡歷人的稱謂就寫尊敬的人事,這樣就會讓人感到候選人在這份郵件至少是下過功夫的。

    例子2:從郵件列表裡,我們能看出候選人是群發郵件,把同一份簡歷發給不同的公司。這種情況不多,但有,恰當的做法是,在一封郵件裡,只給一個公司傳送求職資訊。

    例子3:有些候選人在郵件裡,直接用附件的形式發簡歷,而沒有任何正文的內容。這就無法讓招聘方感覺到候選人的誠意了。

    比較恰當的做法是,候選人還應當在郵件裡寫上如下樣式的求職信。

xx公司,尊敬的人事張先生:

我在xx招聘網站上看到您這邊的招聘Java高階開發的資訊,特來應聘。

我叫xxx,今年xx歲,xx大學xx系畢業,本科學歷,手機是xx。

我有x年java經驗,用過Spring MVC等技術(根據職位描述列出用到過的其它Java技術),資料庫方面,我用過xx,也有過調優經驗(資料庫方面的經驗也請和職位描述一致)。再根據職位描述寫一些自己和這個崗位相匹配的技術。

我非常願意加入貴公司從事Java高階開發的工作,我的詳細情況請看我的簡歷,如果可以,我非常願意向您這邊提供更多的個人資訊。

最後列上署名

    因為有些公司的郵箱出於安全因素,會過濾附件,所以還是建議大家以附件形式發簡歷的同時,在正文裡也加上簡歷的內容。


原文轉自:https://www.cnblogs.com/JavaArchitect/p/8249594.html

相關文章