原创 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