日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

《Java解惑》陷阱和缺陷的目录

發布時間:2025/6/15 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Java解惑》陷阱和缺陷的目录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
陷阱和缺陷的目錄

一、詞匯問題
1、字母l在許多字體中都與數字1相像。
2、負的十六進制字面常量看起來像是正的。
3、八進制字面常量與十進制字面常量相像。
4、ASCII字符的Unicode轉義字符容易令人迷茫。
5、反斜杠必須被轉義,即使是在注釋中。
6、塊注釋不要嵌套。

二、整數運算
1、%操作符的非零結果具有和左操作數相同的正負號。
2、整數運算的悄悄溢出。
3、int數值之差的正負號不能可靠地指示其大小順序。
4、復合賦值操作符可能造成悄悄的窄化轉型。
5、整數類型不對稱:Integer.MIN_VALUE是它自己的負值,Long.MIN_VALUE也一樣。
6、移位操作符只用了其右操作數的低位。
7、當在整數類型之間轉換時,如果源類型是有符號的則執行符號擴展。

三、浮點運算
1、浮點運算是不精確的。
2、NaN不等于任何浮點數值,包括它自身。
3、從int到float,從long到float以及從long到double的轉換是有損精度的。
4、BigDecimal(double)構造器返回的是其浮點型參數的精確值。

四、表達式計算
1、混合類型計算容易令人迷茫。
2、操作符的操作數是從左到右計算的。
3、操作符的優先級并不總是很明顯。
4、操作符==和!=在被包裝的基本類型上執行引用比較。
5、常量變量在所用的地方是內聯的。
6、操作符&和|即使在作用于布爾類型的數值時,也要同時計算其兩個操作數。

五、控制流
1、在switch case語句中缺少break將導致控制流一貫而下。
2、在Integer.MAX_VALUE上終止以int為索引的循環是困難的。
3、finally語句塊的意外完成將掩飾掛起的控制傳輸。
4、為正常的控制流使用異常將導致bug和很差的性能。

六、類初始化
1、類初始化是自頂向下的。
2、NoClassDefFoundError出現的時機是不可靠的。

七、實例的創建與銷毀
1、實例初始器在構造器方法體之前執行。
2、在構造器中調用被覆寫的方法會導致該方法在實例初始化之前運行。
3、引用無效會導致內存泄露。
4、添加私有構造器失敗會使類可實例化。
5、終結器是不可預知的、危險的,且速度很慢。
6、被克隆的對象可以共享內部狀態。

八、其他與類和實例相關的主題
1、在靜態方法上沒有任何動態分派。
2、內部類是令人迷茫的。
3、不能做保護復制就會破壞不變性。
4、實現一個接口會影響實現類的API。
5、int常量作為枚舉值不安全。
6、混合使用基本類型和參數化類型將弱化類型檢查機制。
7、返回null而不是0長度的數組或者集合有產生錯誤的傾向。

九、名字重用
1、想要覆寫時很容易就變成了重載。
2、重載解析規則不明顯。
3、隱藏實體的程序難以理解。
4、遮蔽實體的程序難以理解。
5、遮掩實體的程序難以理解。
6、與所在類具有相同名字的方法看似構造器。
7、重用平臺類名的程序難以理解。

十、字符串
1、數組不能覆寫Object.toString。
2、String.replaceAll以正則表達式作為第一個參數。
3、String.replaceAll以置換字符串作為第二個參數。
4、重復地進行字符串連接可能導致極差的性能。
5、從字節數組到字符數組的轉換需要指定字符集。
6、char類型值只會默認轉換成int,而不是String。

十一、I/O
1、Stream.close可以拋出IOException異常。
2、PrintStream.write(int)不刷新輸出流。
3、要消費掉一個進程的輸出,否則該進程可能掛起。

十二、線程
1、調用Thread.run不能啟動一個線程。
2、庫類可能鎖住或通知它們的實例。
3、Thread.interrupted會清除中斷狀態。
4、類初始化過程中將持有該類的鎖。
5、在共享可變狀態時同步失敗,可能導致不能觀察狀態的變化。
6、在被同步的語句塊中調用外部方法可能導致死鎖。
7、在while循環的外部調用wait方法會引發不可預知的行為。
8、對線程調度器的依賴可能導致不定的且平臺依賴的行為。

十三、反射
1、反射將檢查對實體和實體所屬類的訪問權限。
2、用反射實例化內部類需要一個額外的參數。
3、Class.newInstance可以拋出未聲明的受檢查異常。

十四、序列化
1、讓一個類可序列化將引入一個公共的偽構造器。
2、序列化形式是類的公共API的一部分。
3、使用默認的序列化形式會在類的公共API中泄露私有字段。
4、使用默認的序列化形式可能會導致性能低下。
5、維護實例的不變規則需要一個readResolve方法。
6、聲明序列版本UID失敗會導致脆弱。
7、如果readObject或readResolve調用了可覆寫的方法,反序列化循環的對象可能引發崩潰。

十五、其他庫
1、覆寫equals方法而不覆寫hashCode方法可能會引發不定的行為。
2、Calendar和Date設計得很差勁。
3、許多類不管其方法名是什么,這些類都是不可變的。
4、某些被廢棄的方法對程序來說就是毒藥。
5、使用自編的解決方案而不是庫容易導致努力白費、bug產生以及極差的性能。

總結

以上是生活随笔為你收集整理的《Java解惑》陷阱和缺陷的目录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。