首頁  >  文章  >  Java  >  面試需要掌握的java基礎知識,你都會了嗎

面試需要掌握的java基礎知識,你都會了嗎

php是最好的语言
php是最好的语言原創
2018-07-26 15:12:071730瀏覽

Java知識不是一朝一夕就能掌握的,有些剛學出來的新人,沒有一點務實的精神,自以為是,感覺自己基礎學好了,好高騖遠,一味的總想趕快學習進階的知識,不是我在這裡貶低初學者,俗話說萬丈高樓平地起,把你的基礎打紮實了再說。來看看下面的菜鳥是什麼窘態。


這裡涉及到了異常棧,編譯期,main函數等等再基礎不過的知識,有那麼部分毫不客氣的新人就說了,為什麼你不講得通俗易懂點兒呢?

通俗易懂,是需要成本的。

異常也就是程式不期望的例外狀況,它處理不了交給程式設計師自己來處理了。 堆疊是個再基礎不過的資料結構,出現它就說明堆疊頂端的元素,是最後入棧的。那麼,看到你出錯後控制台拋出的那堆文字沒有?貼出來,距離XXXException最近的通常就是最關鍵的資訊。

你看,就算精簡為“控制台拋出的那堆文字”,比較起來,是不是“異常棧”更加節約雙方的時間,畢竟以當前IT業界的薪資水準,老鳥可能已經浪費了公司好幾十塊。

更何況,可能有人是連「控制台」都無法理解的,這就牽涉到了作用2。

還有更不務實、浮誇的新手。

我看過一份履歷,quartz、POI、easyUI、jquery等等,寫了一堆。這人自己可能覺著,這些名詞高端,厲害,可是呢,看看這份技能表:

就暴露出了他的問題,此人並不懂他所說的這些名詞是什麼。

至少,一個有基礎的程式設計師就不會寫上熟悉xml、json、dom4j技術,也不會把「線上付款」和servletjsp放在同一欄位下面。他無需長篇累述自己的技能樹多麼豐滿,合適的內容,合理的排版,本身就代表了他的水準。

新人基礎不紮實,沒關係,可以慢慢學習,但是學習要有個學習的態度和方法,要有解決問題的能力,要發揮自己的主觀能動性,不要什麼問題都做伸手黨,讓別人把東西嚼碎了餵給你。這樣的話,自己是很難成長的。

例如:

般來說,挨了這三連懟的老鳥無不火從心起,但凡有例外,要麼脾氣太好要嘛姑娘太好看。

適當的解決方案:搜尋關鍵字->查看文件->閱讀原始碼->詢問老鳥關鍵字->*。

從來沒到過的問題要如何解決呢?或者擴充一下,我寫的功能,如何適應未來千奇百怪的需求?當然,這其實本質還是個碼量和閱讀量的問題。

下來,給新人一點學習的方法和想法。

我把學習分成幾個階段:

(一)基礎理解階段,你看到一個基礎知識點,開始理解它的意義,看到具體的實例能反應出它所對應的基礎知識。例如看到Animal cat=new Cat()能反應出它體現瞭如下知識點:宣告、實例化、引用、多態。

(二)串聯階段,把知識點串聯起來,建構出它本源的樣子,比如上面的例子,結合JVM相關知識,腦海裡出現一張粗略的堆疊圖,就像這張圖:

這樣的能力不光可以用來向本源推測,也可以主動的把知識點組合,玩味出新的結構,比如,新需求是「根據配置來產生動物」。

那麼,我們分析會有一個根據配置項來產生動物實例的建置工具。程式碼可能長下面的樣子:

Animal animal=AnimalFactory.createAnimal(“貓”);

在createAnimal裡,我們對字串進行if判斷,決定到底是new Cat還是new Dog

事實上,這樣的結構已經有人總結在GoF裡了。誒,GoF是什麼?忘了這段是說什麼的嗎?

(三)進階階段,具備串聯知識點的能力之後,就應當有看到未知技術逆推具體實現的能力。例如hibernate,它的功能是什麼?核心在於“實現持久層和資料層的同步”,也就是說,資料表和JavaBeanPOJO的映射。那麼,我們來思考,如果從來不存在hibernate類似的ORM框架,要如何實現這個功能呢?

首先,我們要有和資料庫溝通的工具和配置,java可以選用jdbc,資料庫相關配置可以使用xml、json、bean任意方式。我們也可以看到,hibernate底層就是jdbc,也有Configuration這個設定入口。

然後要有種配置方式讓資料表和Bean達成統一。為什麼?因為它們的資訊量不一致,包含的資訊是相交的關係,例如,它們都有類似的資料類型(varchar->String),又有互不相融的內容(索引和約束),得出結論,我們需要一個映射工具,來使相交的部分匹配,並且補充缺少的內容。於是,我們可以推論出,hibernate一定有個映射工具(xml和annotation)。

再後,為了適應多種不同的資料庫,每一語句可能都有不同的表達,例如Oracle有Number(*,*)這個類型,對於mysql就不適用,我們需要設計一個資料庫的適配器。在hibernate裡,這個部分叫做方言,Dialect。

經過這樣的分析過程,不管是實現新的需求,或是分析未知的框架,都具備了理論上的基礎。

就我個人的見解,達到這個階段的程式設計師,才能稱之為合格。說了這麼多了,需要自己內省,才知道自己的問題出在哪裡,然後發現問題解決問題。

相關文章:

java基礎知識小結

#相關影片:

##最新Java完整影片教學

以上是面試需要掌握的java基礎知識,你都會了嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn