原创 2.23 不要讓類型默默轉換

</pre><pre name="code" class="java"><pre name="code" class="java">public class Client { // 光速是30萬公里/秒,常量 public stati

原创 《編寫高質量代碼:改善Java程序的151個建議》 建議15

15. break萬萬不可忘 我們經常會寫一些轉換類,例如貨幣轉換、日期轉換、編碼轉換等,在金融領域裏用到最多的要數中文數字轉換了,看下面代碼:public String toChineseNumberCase(int n){ Stri

原创 《編寫高質量代碼:改善Java程序的151個建議》 建議16

16. 易變業務使用腳本語言編寫 腳本語言的三大特徵: 1. 靈活。腳本語言一般都是動態類型,可以不用聲明變量類型而直接使用,也可以在運行期改變類型。 2. 便捷。腳本語言是一種解釋型語言,不需要編譯成二進制代碼,也不需要像Java一樣生

原创 《編寫高質量代碼:改善Java程序的151個建議》 建議18

18. 避免instanceof非預期結果 instanceof是一個簡單的二元操作符,它是用來判斷一個對象是否是一個類的實例的,其操作類似於>=、==,非常簡單,我們來看段程序:public class Client { public

原创 《編寫高質量代碼:改善Java程序的151個建議》 建議10

10. 不要在本類中覆蓋靜態導入的變量和方法 import static java.lang.Math.PI; import static java.lang.Math.abs; public class Client { publ

原创 《編寫高質量代碼:改善Java程序的151個建議》 建議9

9. 少用靜態導入 爲了減少字符輸入量,提高代碼的可閱讀性,以便更好地理解程序,從Java 5開始引入了靜態導入語法( import static )。// 簡單的導入 public class MathUtils{ public

原创 2.24 邊界,邊界,還是邊界

以前玩一款新出的遊戲,找到了一個充值漏洞,在充值會員的時候在充值數量輸入框中先輸入-999999,提交後再輸入正數的充值數,就可以不用花錢而得到金幣,那段時間在遊戲裏真是揮金如土,什麼神獸神兵,武功祕籍,隨便買,從而虐遍全服~~雖然很不幸

原创 C#內存泄露與資源釋放 經驗總結

本文鏈接:http://blog.csdn.net/yokeqi/article/details/41083939 C#相比其他語言,擁有強大的垃圾回收機制,但並不是這樣,你就可以對內存管理放任不管,其實在稍不注意的時候,可能就造成了內

原创 《編寫高質量代碼:改善Java程序的151個建議》 建議7

建議7 警惕自增的陷阱 思考一下,以下代碼的結果:int count =0; for (int i=0; i<10; i++){ count = count++; }count值等於10?No,count等於0。 注意,count

原创 《編寫高質量代碼:改善Java程序的151個建議》 建議8

建議8 不要讓舊語法困擾你 一段奇妙的代碼:static void saveDefault(){ } static void save(int fee){ } int fee = 200; saveDefault : save(fee)

原创 2.22 用整數類型處理貨幣

System.out.println(10.00 - 9.60); 本來期望輸出應該是0.4,結果打印出來的卻是0.40000000000000036,這是爲什麼呢? 因爲計算機中的浮點數有可能是不準確的,它只能無限接近準確值,而不能完全

原创 《編寫高質量代碼:改善Java程序的151個建議》 建議19

19. 斷言絕對不是雞肋 在防禦式編程中經常會用斷言(Assertion)對參數和環境做出判斷,避免程序因不當的輸入或錯誤的環境而產生邏輯異常,斷言在很多語言中都存在,C、C++、Python都有不同的斷言表示形式。在Java中斷言使用的

原创 《編寫高質量代碼:改善Java程序的151個建議》 建議13

13. 避免爲final變量複雜賦值 繼上一節,final還可以通過在聲明時通過方法返回值賦值,如:public class Person implements Serializable { private static final l

原创 12. 避免用序列化類在構造函數中爲不變量賦值 ——《編寫高質量代碼:改善Java程序的151個建議》

12. 避免用序列化類在構造函數中爲不變量賦值 我們知道final標識的屬性是不變量,也就是說只能賦值一次,當序列化與反序列化的過程中,涉及到final變量時,就會有些複雜,比如以下情況: public class Person impl

原创 《編寫高質量代碼:改善Java程序的151個建議》 建議11

11. 養成良好習慣,顯示聲明UID Serial Version ID也叫流標識符(Stream Unique Identifier),即類的版本定義,它可以現實聲明也可以隱式聲明。顯示聲明格式如下: private static fi