成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

彩擊機的PracticalJava讀后小記(一)

開發(fā) 后端
關于”equals()”方法,String可以隨便用一用,JDK貌似很多類都沒有覆寫equals()方法,慎重使用。順便一說,Object的equals()方法相當于==。

1.關于”equals()”方法,String可以隨便用一用,JDK貌似很多類都沒有覆寫equals()方法,慎重使用。順便一說,Object的equals()方法相當于==。自己覆寫equals()方法,步驟三:<1>索引是否相等<2>是否是此類型<3>成員判斷。覆寫equals()方法,要覆寫hashcode()方法。相等的對象必須具有相等的散列碼。有些集合類都是基于散列值的,如HashMap、HashSet、Hashtable等,是根據對象的散列值將其映射到相應的散列桶。最后,當對有父類的類重寫equals()方法時,注意調用super.equals()方法。

2.在把異常向上拋出時要注意,如果在catch,finallly中執(zhí)行會產生異常的語句時,有可能會覆蓋根源異常。

Java代碼

  1. Public class Hidden     
  2. {     
  3.   public void foo() throws Exception     
  4.   {     
  5.     try {     
  6.       throw new Exception("First Exception");                 //1     
  7.     }     
  8.     catch (Exception e) {     
  9.       throw new Exception("Second Exception");                //2     
  10.     }     
  11.     finally {     
  12.       throw new Exception("Third Exception");                 //3     
  13.     }     
  14.   }     

 

3.關于throws,寫清每一個異常比寫一個他們的父類要好,因為捕獲異常的函數也許需要針對不同的異常進行操作。

比如void f() throws FileNotFoundException, EOFException, UnsupportedEncodingException

就比void f() throws IOException 要好很多。

當調用f()的函數處理異常時,碰到第二種情況就只有去看f()的源碼了。。。

這也沒神馬好總結的,JDK就是這么做的,大抵就是這個原因吧。

4.關于繼承關于throws

Java代碼

  1. interface A {     
  2. void f() throws IOException;     
  3. }     
  4. class B {     
  5.     @Override    
  6.     void f() …     
  7. }  

 

此時f()有三種選擇,<1>不拋出任何異常<2>拋出IOException<3>拋出IOException的子類異常<4>有非IOException的子類異常怎么辦?自己內部抓住解決之。

原因是,要是不這樣,調用f()的上層方法不知道要改成神馬樣子,面向接口編程還怎么搞。這些其實編譯器都會幫你檢查的,之所以還要說是因為注意到這個問題,了解了些許原因,感覺對異常處理突然產生些許感悟。

5.關于finally,老問題隨便寫兩句,用finally確保你的資源釋放。當有finally塊存在時,最好不要從try塊中return,否則勿必檢查finally塊不會影響程序的正常返回。下面代碼必須悲劇的。

Java代碼

  1. int f() {     
  2.     try {     
  3.         return 1;     
  4.        } finally {     
  5.         return 2;     
  6.        }     

 

補一點,怎么才能不執(zhí)行finally塊中語句呢?在try塊中執(zhí)行到System.exit(0);語句-.-

6.關于“不要用異常控制流程”,印象中有點爭議? 關鍵在于“流程”二字,這個流程指什么。這個流程指的是正常的程序流程,比如《Practical Java》實踐24里面這個,但是異常的程序流程是可以處理的,比如網絡程序socket連接連著由于網絡不穩(wěn)定等原因斷了,捕獲這個異常,進行重新連接或者連接服務鏡像神馬的,這個流程就是異常流程,這個不用異??刂撇缓锰幚砹税?。

7.在構造函數中拋出異常,咋一看,有點怪。稍微一回憶,JDK中的Stream系列構造函數可不都是這樣的么。Why?構造函數沒有返回值,不能從構造函數獲得傳統(tǒng)的錯誤報告,一旦構造函數失敗,無法從中返回錯誤碼。這么做的好處:如果構造函數產生異常,調用段也忽略了這個異常,那么變量的索引就會指向null,使用時就會拋出NullPointerException。如:

Java代碼

  1. A a = null;     
  2. try {     
  3. a = new A();     
  4. catch(XXExcption e) {…}     
  5. // 調用a     
  6. … …    

 

還有一種辦法叫做二段構造法,構造函數只處理不會有異常的部分,會產生異常的部分抽離出去由另一個函數進行處理。此時就必須設置一個標志位來顯示該類是否被成功的初始化,但是這造成了在調用其它函數的時候或之前必須檢查此標志位(調用其它函數的時候是指檢查標志位的工作在每一個“其它函數”的內部最開始的部分)。

對了,以上討論的類像這種:

Java代碼

  1. class MyFileInputStream {     
  2.     String name;     
  3.     FileInputStream fis;     
  4. }   

 

初始化name時候不會錯,而初始化fis時候會有FileNotFoundException異常,不管的話會產生name有值,fis沒值是null的未完全初始化的情況,導致其它成員方法的一些錯誤。

原文鏈接:http://mylazygirl-yeah-net.javaeye.com/blog/974477

8.拋出異常前先將對象恢復成有效狀態(tài),嗯,理解的不夠深刻。說點別的,捕獲異常并且沒有繼續(xù)向上拋,此時程序必須能夠運行在已知的流程上,必須要正常的運行,并且不能影響下一次運行。簡單說就是捕獲異常需要處理,至少也要日志,對于處理不了的還是繼續(xù)向上拋吧。

責任編輯:金賀 來源: JavaEye博客
相關推薦

2011-09-27 14:53:15

奔圖炫彩機

2011-06-28 09:41:25

佳能一體機

2012-10-10 12:47:23

打印機佳能

2012-05-18 10:47:24

惠普激光打印機

2012-02-13 13:16:28

復合一體機推薦

2012-02-27 14:25:33

三星復合一體機

2012-06-05 11:33:12

復合一體機行情

2012-01-13 13:54:59

復合一體機評測

2012-07-03 12:25:18

富士施樂復合一體機

2011-06-06 14:00:50

一體機行情

2012-02-06 20:36:53

復合一體機導購

2011-04-12 15:42:33

2011 IDF云計算Cloud Build

2011-07-09 18:32:33

復合一體機解決方案

2011-07-05 11:41:04

惠普復合一體機

2012-03-02 16:10:51

復合一體機評測

2011-10-22 11:00:55

激光打印機評測

2012-04-09 22:16:41

Google 眼鏡

2010-08-26 09:12:33

非法DHCP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区在线免费观看视频 | 久久精品免费 | 91福利在线导航 | 自拍视频国产 | 人人射人人草 | 日韩中文欧美 | 免费黄色a级毛片 | 亚洲国产成人av好男人在线观看 | 亚洲一区二区视频在线播放 | 亚洲欧洲在线观看视频 | 狠狠狠色丁香婷婷综合久久五月 | 国产成人精品一区二区三 | 在线观看成年人视频 | 天天搞天天搞 | 亚洲一区二区三区四区在线观看 | 成人国产一区二区三区精品麻豆 | 中文字幕国产视频 | 亚洲国产一区在线 | 在线免费av观看 | 黄色大全免费看 | 成人免费看黄网站在线观看 | 国产农村一级国产农村 | 涩在线| 亚洲成人一二区 | 中文字幕一区在线观看视频 | 成人伊人 | 亚洲精品天堂 | 精品小视频 | 久久国产精品久久国产精品 | 日韩靠逼 | av网站在线播放 | 色婷婷亚洲一区二区三区 | 亚洲成人一级 | 欧美乱码精品一区二区三区 | 特黄特黄a级毛片免费专区 av网站免费在线观看 | 91精品久久久久久久久久小网站 | 欧美激情第一区 | 免费激情网站 | 97久久久久久久久 | 日韩一二区 | 丁香婷婷久久久综合精品国产 |