要使區域性變數的作用域最小化,最有力的方法就是在第一次使用它的地方宣告
幾乎每個區域性變數的宣告都應該包含乙個初始化表示式
不過有三種情況無法使用for-each迴圈:
1.過濾:遍歷集合並刪除指定元素,需要迭代器以便呼叫remove
2.轉換:遍歷列表或陣列,並取代它部分或全部的元素值,需要迭代器或陣列索引,以便設定元素的值
3.平行迭代:並行地遍歷多個集合
如果可以犧牲一點效能的話用bigdecimal
如果效能非常關鍵,並且你又不介意自己記錄十進位制小數點,並且所涉及的數值又不太大,可以用int或long
對裝箱基本型別運用==操作符幾乎總是錯誤的
當在一項操作中混合使用基本型別和裝箱基本型別時,裝箱基本型別就會自動拆箱,如果null物件引用被自動拆箱,就會得到乙個bullpointerexception異常
字串不適合代替其他值型別,列舉型別,聚集型別,能力表
更加靈活
反射的缺點:
1.喪失了編譯時型別檢查的好處
2.執行反射訪問所需要的**非常笨拙和冗長
3.效能損失
使用本地方法來提高效能的做法不值得提倡
《effective Java》讀後筆記
為什麼區域性變數要宣告為 final 在jdk 1.8 之前,不用final修飾會編譯報錯。在jdk 1.8 中,不用final修飾不會報錯,但是一旦改變了變數的值就會報錯 區域性類如果乙個內部類需要在多個方法之外仍然是可見的,或者是它太長了,不適合於放在方法內部,就應該使用成員類。如果成員類的每個...
Effective Java閱讀筆記
通用程式設計 將區域性變數的作用域最小化,可以增強 的可讀性和可維護性,並降低出錯的可能性。要使區域性變數的作用域最小化,最有力的方法就是在第一次使用它的地方宣告。如果變數在使用之前宣告,只會造成混亂,過早地宣告區域性變數不僅會使它的作用域擴充套件,而且結束地也過於晚了。不要重新造輪子,一般而言,類...
Effective Java 學習筆記 6
及時消除不使用的物件的引用,理論上,帶有記憶體管理的語言是不存在記憶體洩漏的,但是如果對物件的操作不當,也是可能會造成記憶體洩漏.如有乙個stack,其pop函式如下.public object pop if element.length 0 return null return element s...