這兩年陸陸續續寫了20來篇和jvm相關的文章,雖然不是很多,但是也得到了一些人的認可,貼上了jvm的标簽,還是挺欣慰的,2016年算是和jvm深綁的一年,現在2016年一不留神也快過了,也趕個時髦,來個小結,不過不鋪開講其他的事,就小結下我是如何走上jvm這條路的
不扯遠啦,從大學開始說起,大學期間雖然java和c也有課程教過,但是基本用得不是很多,也不是很熟,何況對于我這種逃課特别嚴重的人呢(大一下學期開始就很少去上課了)
07年那會flex開始流行起來了,不過還不是很廣,從市面上的書就可以知道,書店裡flex的書特别少,過了一兩年才慢慢多起來,我應該算挺早玩flex的人吧
我特别喜歡flex那種所見即所得的感覺,想做成什麼東西很快就能做起來,大學那會靠它還賺了不少錢。大三的時候還完全自研了一個flex部落格,記得有一晚上和我一大學哥們聊我這部落格設計,創意,問題及解決思路等不知疲倦地聊了一個晚上都沒聊完,人家都打哈欠了,哈哈。自己開發設計的感覺實在太爽了,可以給大家看看之前的部落格樣子,也許曾經玩過flex的哥們還去我部落格上玩過,當時還實作了兩個版本,可以無縫切換
下面是第二個版本
不過那會沒有r大那樣的覺悟來玩虛拟機,那個時候講真都不知道虛拟機是啥玩意,早有知今日,或許那個時候就研究actionscript虛拟機了,也不至于現在和r大差那麼大一截
不過現在也特别懷戀那種感覺,其實我非常羨慕前端er們,他們應該特别有成就感吧
雖說09年開始找工作的時候都是找的flash相關的崗位,也拿到了迅雷等公司的flash工程師崗,但是最終還是來到了支付寶(那會支付寶還沒啥名氣,從沒在淘寶上買過東西)從事生疏的java崗,還挺感謝當時的面試官們,沒java經驗還覺得我還可行,算是我的伯樂啦,否則按照flash現在這個發展,估計我早就轉行了,也許我現在應該在做遊戲?
來了支付寶從事的還是要求挺高的基礎技術的工作,做架構開發,這個架構在支付寶的開發肯定都非常熟了,因為幾乎所有的應用都是基于這個架構來玩的
剛開始的時候因為java基礎很差,為了能勝任工作是以我經常加班很晚,天天debug看代碼,一般是晚上十一點多才回去的,整層樓就我一個人了,一年之後我對這塊算很熟了,還給新來的應屆生上架構的課了
這個一做就做了三四年,這三四年雖然辛苦,但是挺值得的,因為收獲挺多。從java門外漢到慢慢熟悉java,精通java,從架構本身再到周邊的技術,包括jboss,tomcat,jetty,maven,mina,httpd等都比較熟了,不過這些周邊技術都是問題驅動的,碰到問題再深入進去排查,排查多了就慢慢熟了,記得一年下來旺旺加我好友的人數就一千多了,慢慢地變成了查問題的老司機了
記得11年那會支付寶出了一個記憶體洩漏的相當嚴重的問題,當時魯肅還特地請畢玄大師過來解決,後面畢大師還給我們分享了jvm相關的東西,不過那會我真是聽不懂啊,就覺得畢大師好牛逼,真羨慕
大概到了13年底,那會因為公司高速發展,碰到的問題也越來越底層,jvm的問題也比較突出了,加之我們架構做更新,完全基于osgi來做,是以碰到類加載的問題也非常明顯,而我們都不是很了解其中的機制啊,碰到linkederror等問題非常懊惱,但是這類問題特别的多,于是迫使我慢慢深入到了jvm裡,第一次下載下傳openjdk的代碼,費了好大勁在mac上能調試起來,因為那個時候還不是很完善,編譯要改不少地方,費了好大勁才玩起來。
當時雖然java熟了,但是c和c++不熟啊,而hotspot都是c/c++寫的,這下麻煩也挺大的,又是一個全新的領域,就這樣利用空餘時間摸爬打滾了大半年,回到家一有時間,一有心情就看代碼,調試代碼,經常一調就到了淩晨兩三點,有時候特别懊惱,因為有些東西實在想不通,解釋不了,碰到問題玩不下去了,但是有時候又特别興奮,就跟玩遊戲一樣,過了一個又一個關卡,我經常會自言自語,“噢,終于明白了,原來是這樣,那那啥啥啥又是怎樣的呢”,就這樣不斷地反問自己一些問題,把整個知識脈絡給理清楚來
那個時候最痛苦的莫過于碰到問題都不知道找誰問,因為身邊沒有一個懂這塊的人,隻能自己去探索,那個經曆隻有自己經曆過才知道有多痛苦,經常好幾個問題拿起來又放下,拿起來又放下,但是最終發現還是得靠自己才能邁過去,所有感謝那些苦不堪言的經曆吧,因為它們你才會變得更強
我是14年年底加入alijvm團隊的,走在jvm這條路上才2年,學到的也還非常有限,寫公衆号的文章是為了記錄我和jvm的這段緣份,說不定哪天我不做jvm了呢,那再接下來誰還知道你曾經和jvm有過這麼一段不堪回首的曆史呢,是以記錄一些東西是好的,好的經驗可以幫到更多的人,讓更多人少走彎路,快速解決他們的問題
最後我想說,隻要你願意付出一切皆有可能,像我這樣從前端flex走到後端java,再到現在的底層jvm,也許後面還有kernel,設定哪天還會去設計晶片,哈哈,有些事不要覺得自己做不到,但是不做肯定是做不到的。
對了昨天的文章點選量實在太低,這是為什麼呢??既然看到了這裡,能否再去看看那篇看起來燒腦的文章?哈哈
<a href="http://mp.weixin.qq.com/s?__biz=mziznji1odc2oa==&mid=2650886959&idx=1&sn=e5dfdb6e695899b8d075b93dbb08a0bb&chksm=f32f6790c458ee864be40d15ad71ef3558a1eda5053c2044bb6e407c62be1546f16216e214cb&scene=21#wechat_redirect" target="_blank">假笨說-從x86指令深扒jvm的位移操作</a>