轉(zhuǎn)自 robin
Java本身是一種設(shè)計(jì)的非常簡(jiǎn)單,非常精巧的語言,所以Java背后的原理也很簡(jiǎn)單,歸結(jié)起來就是兩點(diǎn):
1、JVM的內(nèi)存管理
理解了這一點(diǎn),所有和對(duì)象相關(guān)的問題統(tǒng)統(tǒng)都能解決
2、JVM Class Loader
理解了這一點(diǎn),所有和Java相關(guān)的配置問題,包括各種App Server的配置,應(yīng)用的發(fā)布問題統(tǒng)統(tǒng)都能解決
就像張無忌學(xué)太極劍,本質(zhì)就是一圈一圈的畫圓,你要是懂得了太極劍的本質(zhì),那么太極劍就那么一招而已,本身是很容易學(xué)的,只是難度在于你要能夠舉一
反三,化一式劍意為無窮無盡的劍招,這就需要一點(diǎn)悟性和不斷的實(shí)踐了;反過來說,如果學(xué)劍不學(xué)本質(zhì),光學(xué)劍招,你就是學(xué)會(huì)了1萬招,碰到了第1萬零1招,
還是不會(huì)招架,敗下陣來。
技術(shù)世界本來就是豐富多彩,企圖統(tǒng)一標(biāo)準(zhǔn),實(shí)際上也做不到,但是世界本質(zhì)其實(shí)并不復(fù)雜。學(xué)習(xí)技術(shù),特別是某種具體的軟件工具的時(shí)候,應(yīng)該學(xué)會(huì)迅速把
握事物的本質(zhì),不要過多攪?yán)p細(xì)節(jié)。軟件工具應(yīng)該為我所用,而不是我被工具所駕馭。當(dāng)你具備了對(duì)整個(gè)J2EE架構(gòu)的設(shè)計(jì)和實(shí)施的能力,你還會(huì)被具體的工具束
縛嗎?哪種工具適合你的架構(gòu),你就用什么,哪種不適合你,你就拋棄它,軟件皆臣服于你的腳下,而不是你被什么軟件牽著鼻子走,到了這種程度,你難道還害怕
學(xué)習(xí)什么新的軟件?
我自己也在一直朝著這個(gè)方向努力,在我心中,設(shè)計(jì)軟件,架構(gòu)是第一位的,采用什么技術(shù)要為架構(gòu)服務(wù)。如果我發(fā)現(xiàn)什么技術(shù)對(duì)我的架構(gòu)來說很重要,那么
我會(huì)花時(shí)間去學(xué)習(xí),去鉆研,就像我花時(shí)間去鉆研ORM一樣,如果我覺得什么技術(shù)對(duì)我的架構(gòu)來說沒有用,即使技術(shù)再火爆,我也不去碰它。
總之要學(xué)會(huì)抓住本質(zhì),駕馭技術(shù),而不是被技術(shù)所駕馭。當(dāng)你掌握了本質(zhì)原理,其實(shí)學(xué)什么都很快,畢竟都是相通的,我先看JDO,后看
Hibernate,其實(shí)兩者就很類似,所以學(xué)得很快,以后如果有工作需要,要我學(xué)習(xí)別的ORM,那我也不會(huì)覺得有什么困難的,一樣手到拿來。
更有說服力的是Unix類的操作系統(tǒng),那就更相似了,只要抓住了Unix最本質(zhì)的幾點(diǎn),例如shell命令和編程,文件系統(tǒng)結(jié)構(gòu)和配置,系統(tǒng)啟動(dòng)原
理和過程,所有的Unix都是無師自通的。我自己會(huì)用Linux,F(xiàn)reeBSD,SCO Unix, Solaris,HP-UX 和
AIX等6種Unix,更體會(huì)到一通百通的道理。
拿剛出了光明頂密道的張無忌來說吧,(我很喜歡張無忌這個(gè)角色),他也沒有練過什么武功,但是他已經(jīng)把天下武學(xué)之本質(zhì):九陽神功 +
乾坤大挪移學(xué)會(huì)了,所以不管什么功夫,他都是看一遍就會(huì),馬上為我所用,看了空性用了一遍龍爪手,就會(huì)用龍爪手來破對(duì)方;和昆侖派打了一架,就會(huì)用昆侖劍
法和滅絕師太過招;七傷拳更是無師自通;太極拳也是看一遍就會(huì)。
總之,學(xué)習(xí)方法還是很重要,別被五花八門的技術(shù)給搞不清學(xué)習(xí)方向了。