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

Java中的異常對程序效率有無影響

開發 后端
其實從異常實現的角度來看,在throw語句處,跳轉到異常的處理代碼,不同的異常處理,應該類似C++中的虛函數表一樣的數構結構(待考證)。詳細請看下文

當異常沒有發生時,沒有影響。

其實從異常實現的角度來看,在throw語句處,跳轉到異常的處理代碼,不同的異常處理,應該類似C++中的虛函數表一樣的數構結構(待考證)。

所以如果沒有拋出異常,那和普通的代碼完全一樣。至于在拋出異常時要處理的開銷和不使用異常,用返回碼等來判斷不同的錯誤,不僅代碼復雜,而且也一樣要有處理的開銷。

測試代碼:

  1. import java.util.Date;  
  2.  
  3. public class Test {  
  4.     long size = 1000000000L;  
  5.     public static void main(String[] args) {  
  6.         Test t = new Test();  
  7.         t.test1();  
  8.         t.test1();  
  9.         t.test1();  
  10.         t.test2();  
  11.         t.test2();  
  12.         t.test2();        
  13.         t.test1();  
  14.         t.test1();  
  15.         t.test1();  
  16.         t.test2();  
  17.         t.test2();  
  18.         t.test2();    
  19.           
  20.     }  
  21.       
  22.     long func1(long i) throws Exception{  
  23.         if(i == 0){  
  24.             throw new Exception("abc");  
  25.         }  
  26.         return i-1;  
  27.     }  
  28.       
  29.     long func2(long i){  
  30.         if(i == 0){  
  31.             return i + 1;  
  32.         }  
  33.         return i -1;  
  34.     }  
  35.       
  36.     void test1(){  
  37.         Date begin = new Date();  
  38.         long total = 0;  
  39.         for(long i = 1; i < size; ++i){  
  40.             try {  
  41.                 total += func1(i);  
  42.             } catch (Exception e) {  
  43.                 e.printStackTrace();  
  44.             }  
  45.         }  
  46.         Date end = new Date();  
  47.         System.out.println(total);  
  48.         System.out.println("test1 time:" + (end.getTime() - begin.getTime()));  
  49.           
  50.     }  
  51.       
  52.     void test2(){  
  53.         Date begin = new Date();  
  54.         long total = 0;  
  55.         for(long i = 1; i < size; ++i){  
  56.             total += func2(i);  
  57.         }  
  58.         Date end = new Date();  
  59.         System.out.println(total);  
  60.         System.out.println("test2 time:" + (end.getTime() - begin.getTime()));  
  61.     }  
  62. }  

總結:異常是個很有用的功能,在不拋出異常時,開銷可以忽略不計。

在C++中也是如此。(TODO:測試C++代碼中異常的效率)

原文鏈接:http://blog.csdn.net/hengyunabc/article/details/7563448

【編輯推薦】

  1. 實現JavaScript編寫類的方式
  2. Java簡單的網絡爬蟲實現
  3. Java調用SQL Server的存儲過程詳解
責任編輯:林師授 來源: hengyunabc的博客
相關推薦

2010-02-22 09:51:19

惠普思科

2009-07-16 09:12:55

必應谷歌微軟

2012-05-07 08:18:42

程序日志性能

2009-06-12 18:54:46

異常程序開發

2022-05-12 15:33:03

iOS蘋果個性化廣告

2015-06-19 12:17:49

JAVA性能影響

2010-04-09 10:16:05

富士康員工死亡事件

2013-04-26 10:14:20

交互設計

2021-11-04 08:58:29

貪心算法策略

2015-11-04 14:03:44

BYOD自帶設備企業

2013-09-29 09:49:04

編程生活方式

2011-06-01 17:45:22

SEO

2021-01-27 10:31:35

隱私谷歌Chrome

2011-05-24 16:01:51

OpenFlow影響

2021-10-13 22:38:42

數字貨幣貨幣人類

2022-12-15 08:00:38

JavaScript錯誤性能

2023-09-05 15:48:00

2012-10-31 11:16:04

程序員招聘

2024-05-11 14:49:39

Java EEJakarta影響

2022-11-17 08:00:18

JavaScript錯誤性能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩国产一区二区三区 | 久久亚洲国产精品 | 一区二区日韩 | 日日久 | 国产精品美女久久久 | 欧美精 | 欧美精品乱码99久久影院 | 国产成人一区二区三区精 | 91最新视频 | 国产精品免费一区二区三区四区 | 国产97视频在线观看 | 欧洲成人 | 中文字幕精品视频在线观看 | 久久国产精品免费一区二区三区 | 在线观看国产视频 | 国产高清视频 | 久久综合国产精品 | 日韩快播电影网 | 亚洲精品国产a久久久久久 午夜影院网站 | 午夜无码国产理论在线 | 国产日韩欧美中文 | 欧美日韩一区二区在线 | xxx.在线观看 | 久久久久久国产精品免费 | 国产一区二区影院 | 国产精品一区在线 | 1区2区视频| 看av电影| 99精品一区二区三区 | 看真人视频一级毛片 | 91.com视频| 日韩精品中文字幕在线 | 欧美二区三区 | 亚洲一区二区在线播放 | 在线视频一区二区 | 久久久精品一区 | 国产亚洲精品久久久久动 | 欧美精品一区二区三区四区五区 | 日韩精品在线一区 | 亚洲激情在线观看 | 亚洲成av人片在线观看 |