三件Java開發者應該知道的事兒
這是一篇有趣的文章,應該符合那些喜歡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/
相關文章
- 淺談AsyncLocal,我們應該知道的那些事兒
- 用友雲開發者中心,你應該知道的那些事
- 獨立開發者入行之前應該知道的8件事
- 每個 Java 開發者都應該知道的 5 個註解Java
- 每個Java開發者都應該知道的5個JDK工具JavaJDK
- Java開發者應該知道的五款錯誤跟蹤工具Java
- 你應該知道的Redis事務Redis
- 前端開發者應該知道的 CSS 小技巧前端CSS
- Java開發者應該列入年度計劃的5件事Java
- 每個 Java 開發者應該知道(並愛上)的 8 個工具Java
- 關於Git小白應該知道的事Git
- JavaScript 開發者應該知道的 setTimeout 祕密JavaScript
- SQL Server DBA需要知道的三件事XTSQLServer
- 每個Javascript開發者都應當知道的那些事JavaScript
- IT職場:每個黑帶都應該知道的事
- 應該知道的前端效能二三事 —— Reflow 和 Repaint前端AI
- 每位開發者都應該知道SOLID原則Solid
- 每個開發者都應該知道的33個JavaScript概念JavaScript
- 關於MySQL密碼你應該知道的那些事MySql密碼
- 軟體工程師應該知道的9件事軟體工程工程師
- 關於 MySQL 密碼你應該知道的那些事MySql密碼
- 程式設計師應該知道的97件事程式設計師
- HTTPS,你不知道的事兒HTTP
- 程式設計師應該關注的一些事兒程式設計師
- 學習機器學習時需要儘早知道的三件事機器學習
- 開發者應該避免使用的6個Java功能Java
- 有關網頁渲染,每個前端開發者都該知道的那點事網頁前端
- 程式設計師最應該知道的一些事程式設計師
- 新手程式設計師應該知道的7件事程式設計師
- 軟體架構師應該知道的97件事架構
- 每個Android開發者應該知道的6個SDK和APIAndroidAPI
- Java字串那些事兒Java字串
- 雲原生java的那些事兒Java
- JavaScript 從定義到執行,你應該知道的那些事JavaScript
- 《深入HTML5》之你應該知道的5件事HTML
- 網站開發人員應該知道的61件事網站
- 網站開發人員應該知道的62件事網站
- 你應該知道的FlutterFlutter