原创 Java軟件低級錯誤(十 六):使用包裝器對象帶來的低效問題

  解讀: 每個基本類型(primitive)都有相應的包裝器(wrapper)對象:Integer、Long、Float、Double、Shor

原创 Java軟件低級錯誤(十二):Java的移位(>>和>>>)運算問題

 解讀    運算符>>指的是對它左邊的操作數帶符號右移位。我們知道數據的補碼錶示,如果是負數,那麼它的最高位是1,所以右移位操作時左邊的空缺用1填

原创 Java軟件低級錯誤(十 一):正確理解Java的淺clone和深clone

 解讀: 淺clone和深clone都是clone,它們本質區別是對象內部的成員屬性(非原生類型屬性,如int等)在clone時是否處理爲引用。如

原创 Java軟件低級錯誤(十 七):對於Map元素的遍歷使用entrySet還是KeySet?

  解讀: JDK實現的數據結構中常用的Map有兩類:HashMap和TreeMap。keySet和entrySet在Map元素數較少時(小於10

原创 Java軟件低級錯誤(六):字符串轉數字時未進行異常處理

  ¨解讀    調用Java方法將字符串轉換爲數字時,如果字符串的格式非法,會拋出運行時異常NumberFormatException。 ¨案

原创 Java軟件低級錯誤(二):常量對象化判斷避免空指針異常

  ¨解讀:    空指針異常是編碼過程中最常見的異常,在使用一個對象的時候,如果對象可能爲空,需要先判斷對象是否爲空,再使用這個對象。在進行常量

原创 Java軟件低級錯誤(二十 ):正確理解String/StringBuffer/StringBuilder的性能區別

  解讀: StringBuffer的內部實現方式和String不同,所以StringBuffer在進行字符串處理時,不生成新的對象,在內存使用上

原创 Java軟件低級錯誤(十 八):忽略InputStream.skip()返回值的處理

  解讀: java.io.InputStream.skip(long n):跳過和放棄此輸入流中的 n 個數據字節,返回的是跳過的實際字節數。如

原创 Java軟件低級錯誤(十 九):靜態變量的初始化問題

  解讀: 類的一個靜態變量已經初始化,在構造函數中進行了重新賦值,但結果顯示構造函數中的賦值沒有生效。因爲編譯器是按照順序將靜態對象、靜態變量搬

原创 Java軟件低級錯誤(十 四):定義equals方法的同時也要定義hashCode方法

  解讀: equals方法用於實現對象之間邏輯上是否相等的判斷,而不是判斷兩個引用是否指向同一個對象,hashCode用於返回對象的哈希碼(也有

原创 重構方法進階(十三):代碼常用重構方法(臨時變量內聯化&&拆分臨時變量)

   引用解釋性變量 表達式可能非常複雜,難以閱讀。臨時變量可以幫助你將表達式分解爲比較容易管理的形式。 若有個複雜的表達式,把表達式的結果(或者子

原创 struts2重新梳理---Struts2核心配置

 StrutsPrepareAndExecuteFilter   <filter>     <filter-name>Struts2</filter-name>         <filter-class>  org.apache.str

原创 Java軟件低級錯誤(七):Calendar的錯誤使用

  ¨解讀    Calendar從星期日開始到星期六爲一個週期,數字表示依次爲:1,2,3……7;MONTH的表示是從數字0開始,所以月份應該是

原创 Java軟件低級錯誤(一):資源未及時釋放

  ¨解讀:     在使用文件、IO流、數據庫連接等不會自動釋放的資源時,應該在使用完畢後馬上將其關閉。關閉資源的代碼try...catch..

原创 struts2重新梳理---入門

 MVC模式     MVC是Model-View-Controller的簡稱,即模型-視圖-控制器。 MVC是一種設計模式,它把應用程序分成三個核心模塊:模型、視圖、控制器,它們各自處理自己的任務。     工作流程     St