三件Java開發者應該知道的事兒

劉曉日發表於2012-10-20

這是一篇有趣的文章,應該符合那些喜歡JavaOne2012大會的人的口味。近期對Java領域專家Heinz Kabutz的一篇採訪深深吸引了我,其中他的Java記憶體謎題程式從Java記憶體管理角度來看非常具有指導意義。

採訪中有一段我印象特別深:Java開發者應該掌握的卻至今沒有掌握的知識。採訪的過程中Heinz提出了很多非常好的觀點,今天這篇文章就重新回顧和延展一下那天值得Java開發者關注的知識。

同時Heinz也提出了他對於未來Java8釋出版本中去除HotSpot VM PermGen的擔憂。

Java併發原則:是否應該注意呢?

Heinz指出,關於這這個主題的討論通常被大部分開發者迴避。除非在只編寫單執行緒程式,否則執行緒併發以及相關問題是我們必須關注的問題。特別作為Java EE開發者編寫的程式碼都會執行在高併發的環境下,一個小小的編碼錯誤就會造成嚴重的執行緒競爭,穩定性和效能方面的問題。同樣,缺乏執行緒相關知識,你也沒法對Java EE容器的執行緒池做出適合的調整。

我還是建議,每個Java開發者都應該學習基本的Java併發原則知識,不論是從編碼還是處理類似JVM 執行緒Dump分析這樣的問題來講都是非常必要的。

提升IDE使用技巧:掌握快捷鍵

Heinz令一個建議是每個程式設計師都應該深入瞭解Java IDE使用技巧。這個建議聽起來很正常,但是你可能會驚訝只有很少一部分人可以很瞭解IDE的使用以及可以通過IDE提高生產效率。這種情況通常是由於缺乏對IDE的快捷鍵以及能力的探索。

如果你使用Eclipse,那麼DZone上這篇講述Eclipse有用快捷鍵的文章算是一個不錯的入門。

Java記憶體管理:學會讀懂GC logs

最後一個但不止於此:學會讀懂GC logs,這條建議是我最喜歡的一個。就像之前我寫過的文章中那樣,JVM GC logs包含很多有關記憶體佔用以及垃圾回收狀況的重要資訊。這些資料在JVM調優,以及排除Java堆空間OutOfMemoryError異常相關問題尤為重要。

不過說實話,就連想要擁有Kirk Pepperdine這樣的專家一半的知識,需要花費非常多的時間,但是開始分析和了解應用中GC logs和Java記憶體管理基礎來說是個非常好的開始。

譯者注:翻譯文章有翻譯文章的樂趣,過程中會加深對文章內容的理解,而且一篇文章會像寶庫一樣,會挖掘出各種財寶。

本文翻譯自:http://java.dzone.com/articles/three-things-java-developers

相關閱讀:(有些文章可能需要翻牆,自備翻牆工具)

1.https://blogs.oracle.com/javaone/entry/the_java_specialist_an_interview

2.http://javaeesupportpatterns.blogspot.com/2011/10/java-7-features-permgen-removal.html

3.http://docs.oracle.com/javase/tutorial/essential/concurrency/

4.http://javaeesupportpatterns.blogspot.com/2011/11/how-to-analyze-thread-dump-part-1.html

5.http://eclipse.dzone.com/news/effective-eclipse-shortcut-key

6.http://javaeesupportpatterns.blogspot.com/2011/10/verbosegc-output-tutorial-java-7.html

7.http://javaeesupportpatterns.blogspot.com/2011/11/outofmemoryerror-java-heap-space.html

本文同時發表於:http://www.congmo.net/blog/2012/10/20/java-three-things-java-developers-should-konw/

相關文章