java 高手具有的能力

這個問題之因此沒有答案,由於每一個人看問題的角度不同,給出的標準不同,而又沒有官方上的標準,在這裏也是發表一下本身的見解,固然只是暫時的,或許明天這個答案又被本身否認了,但願能與各位多多交流,同時也但願各位多發表本身的意見。

java"高"手,這個高字我加了雙引號,是在強調這個高字,而不是java初學者,也不是java大師,而是一個高手。

結合本身的目前的理解,談談本身的想法吧,分爲如下幾個方面:

  1.JVM

  包括如下幾個方面:


  熟悉jvm 規範


  熟悉jvm內存管理機制


  熟悉jvm classloader機制


  可以編寫下列工具:


  反編譯java代碼工具


  混淆java代碼工具


  jvm內存監控工具


  字節碼生成工具


  2.開源框架


  java相關的開源框架不少,在實際的項目開發中用到的也不少。


  可是會使用並不能說明什麼,僅僅能說明的是你對這個工具很熟悉,並且你也僅僅是把它當一個工具來看待。


  若是你把他看成一個做品來看,你確定不會僅僅從外面上來看。把她內臟挖出來,看看它的內部組成。


  個人意思是說,你應該讀讀它的源代碼,看看他的做者是怎樣設計的,是怎樣一步一步構思的。


  把這些步驟都列出來,而後看看哪些地方是設計精妙所在,值得本身去進一步深思和挖掘。


  你會感受到你是在和一位大師溝通,他在指導着你,雖然你不能跟他見面。


  常常看到不少簡歷上寫着精通struts,精通hibernate等等,是否是真的精通呢?


  問他問題:若是我讓你來設計一個與struts,hibernate功能相同的框架,你會從哪些方面考慮?你會怎樣設計?


  還有人說精通java,那麼在我看來你處在的層次就不單單是熟練使用它的api的級別上了,那麼你必定會編寫java的編譯器吧?


  3.設計能力


  這方面是指你的oop的能力。


  那麼你是否是說我對設計模式很熟悉,那麼個人設計能力水平就很高嗎?不見得。


  設計模式不過是給你提供了一系列的解決方案。


  即便這些設計模式能解決你全部的問題,可是你還要去辨認什麼時候使用模式合適,以及使用的過程中 怎樣去抽象一個問題,以及抽象到一個什麼樣的粒度。


  有的人買來一本設計模式的書,按着上面的例子都運行了一遍,就自稱熟悉設計模式。


  教科書上的模式代碼例子,也是一個相似hello world的例子而已。


  設計模式不是一個簡單的api調用,而是你的設計能力,絕非靠使用照着葫蘆畫瓢能達到的。


  4 多線程


  多線程的使用,必須熟練。


  5.熟練使用java相關技術


  在這裏僅僅指j2ee方向的。


  jms,jndi,ejb,webservice等等。


  在這裏不討論數據庫,軟件工程等等,焦點僅限於java.固然前提是得懂java語法,並且對於jdk的api也能熟悉。java

相關文章
相關標籤/搜索