精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳細介紹Java性能的優化(二)

開發 后端
本文介紹的是java的性能優化,主要從三個方面介紹的,分為兩篇為大家介紹,希望對你有幫助。

Java在九十年代中期出現以后,在贏得贊嘆的同時,也引來了一些批評。贏得的贊嘆主要是Java的跨平臺的操作性,即所謂的”Write Once,Run Anywhere”.但由于Java的性能和運行效率同C相比,仍然有很大的差距,從而引來了很多的批評。 下面來討論提高JAVA程序性能的一些方法。

通過使用一些前面介紹過的輔助性工具來找到程序中的瓶頸,然后就可以對瓶頸部分的代碼進行優化。一般有兩種方案:即優化代碼或更改設計方法。我們一般會選擇后者,因為不去調用以下代碼要比調用一些優化的代碼更能提高程序的性能。而一個設計良好的程序能夠精簡代碼,從而提高性能。

下面將提供一些在JAVA程序的設計和編碼中,為了能夠提高JAVA程序的性能,而經常采用的一些方法和技巧。

1.對象的生成和大小的調整。

JAVA程序設計中一個普遍的問題就是沒有好好的利用JAVA語言本身提供的函數,從而常常會生成大量的對象(或實例)。由于系統不僅要花時間生成對象,以后可能還需花時間對這些對象進行垃圾回收和處理。因此,生成過多的對象將會給程序的性能帶來很大的影響。

例1:關于String ,StringBuffer,+和append

JAVA語言提供了對于String類型變量的操作。但如果使用不當,會給程序的性能帶來影響。如下面的語句:

  1. String name=new String(“HuangWeiFeng”);   
  2. System.out.println(name+”is my name”);  

 

看似已經很精簡了,其實并非如此。為了生成二進制的代碼,要進行如下的步驟和操作。

(1) 生成新的字符串 new String(STR_1);

(2) 復制該字符串。

(3) 加載字符串常量”HuangWeiFeng”(STR_2);

(4) 調用字符串的構架器(Constructor);

(5) 保存該字符串到數組中(從位置0開始)

(6) 從java.io.PrintStream類中得到靜態的out變量

(7) 生成新的字符串緩沖變量new StringBuffer(STR_BUF_1);

(8) 復制該字符串緩沖變量

(9) 調用字符串緩沖的構架器(Constructor);

(10) 保存該字符串緩沖到數組中(從位置1開始)

(11) 以STR_1為參數,調用字符串緩沖(StringBuffer)類中的append方法。

(12) 加載字符串常量”is my name”(STR_3);

(13) 以STR_3為參數,調用字符串緩沖(StringBuffer)類中的append方法。

(14) 對于STR_BUF_1執行toString命令。

(15) 調用out變量中的println方法,輸出結果。

由此可以看出,這兩行簡單的代碼,就生成了STR_1,STR_2,STR_3,STR_4和STR_BUF_1五個對象變量。這些生成的類的實例一般都存放在堆中。堆要對所有類的超類,類的實例進行初始化,同時還要調用類極其每個超類的構架器。而這些操作都是非常消耗系統資源的。因此,對對象的生成進行限制,是完全有必要的。

經修改,上面的代碼可以用如下的代碼來替換。

  1. StringBuffer name=new StringBuffer(“HuangWeiFeng”);   
  2. System.out.println(name.append(“is my name.”).toString());  

 

系統將進行如下的操作。

(1) 生成新的字符串緩沖變量new StringBuffer(STR_BUF_1);

(2) 復制該字符串緩沖變量

(3) 加載字符串常量”HuangWeiFeng”(STR_1);

(4) 調用字符串緩沖的構架器(Constructor);

(5) 保存該字符串緩沖到數組中(從位置1開始)

(6) 從java.io.PrintStream類中得到靜態的out變量

(7) 加載STR_BUF_1;

(8) 加載字符串常量”is my name”(STR_2);

(9) 以STR_2為參數,調用字符串緩沖(StringBuffer)實例中的append方法。

(10) 對于STR_BUF_1執行toString命令。(STR_3)

(11)調用out變量中的println方法,輸出結果。

由此可以看出,經過改進后的代碼只生成了四個對象變量:STR_1,STR_2,STR_3和STR_BUF_1.你可能覺得少生成一個對象不會對程序的性能有很大的提高。但下面的代碼段2的執行速度將是代碼段1的2倍。因為代碼段1生成了八個對象,而代碼段2只生成了四個對象。

代碼段1:

  1. String name= new StringBuffer(“HuangWeiFeng”);   
  2. name+=”is my”;   
  3. name+=”name”;  

 

代碼段2:

  1. StringBuffer name=new StringBuffer(“HuangWeiFeng”);   
  2. name.append(“is my”);   
  3. name.append(“name.”).toString();  

 

因此,充分的利用JAVA提供的庫函數來優化程序,對提高JAVA程序的性能時非常重要的.其注意點主要有如下幾方面;

(1) 盡可能的使用靜態變量(Static Class Variables)

如果類中的變量不會隨他的實例而變化,就可以定義為靜態變量,從而使他所有的實例都共享這個變量。
例:

  1. public class foo   
  2. {   
  3. SomeObject so=new SomeObject();   
  4. }  

 

就可以定義為:

  1. public class foo   
  2. {   
  3. static SomeObject so=new SomeObject();   
  4. }  

(2)不要對已生成的對象作過多的改變。

對于一些類(如:String類)來講,寧愿在重新生成一個新的對象實例,而不應該修改已經生成的對象實例。

例:

  1. String name=”Huang”;   
  2. name=”Wei”;   
  3. name=”Feng”;  

 

上述代碼生成了三個String類型的對象實例。而前兩個馬上就需要系統進行垃圾回收處理。如果要對字符串進行連接的操作,性能將得更差。因為系統將不得為此生成更多得臨時變量。如上例1所示。

(3) 生成對象時,要分配給它合理的空間和大小

JAVA中的很多類都有它的默認的空間分配大小。對于StringBuffer類來講,默認的分配空間大小是16個字符。如果在程序中使用StringBuffer的空間大小不是16個字符,那么就必須進行正確的初始化。

(4) 避免生成不太使用或生命周期短的對象或變量。

對于這種情況,因該定義一個對象緩沖池。以為管理一個對象緩沖池的開銷要比頻繁的生成和回收對象的開銷小的多。

(5) 只在對象作用范圍內進行初始化。

JAVA允許在代碼的任何地方定義和初始化對象。這樣,就可以只在對象作用的范圍內進行初始化。從而節約系統的開銷。

例:

  1. SomeObject so=new SomeObject();   
  2. If(x==1) then   
  3. {   
  4. Foo=so.getXX();   
  5. }   
  6. 可以修改為:   
  7. if(x==1) then   
  8. {   
  9. SomeObject so=new SomeObject();   
  10. Foo=so.getXX();   
  11. }  

2.異常(Exceptions)

JAVA語言中提供了try/catch來發方便用戶捕捉異常,進行異常的處理。但是如果使用不當,也會給JAVA程序的性能帶來影響。因此,要注意以下兩點。

(1) 避免對應用程序的邏輯使用try/catch

如果可以用if,while等邏輯語句來處理,那么就盡可能的不用try/catch語句

(2) 重用異常

在必須要進行異常的處理時,要盡可能的重用已經存在的異常對象。以為在異常的處理中,生成一個異常對象要消耗掉大部分的時間。

3. 線程(Threading)

一個高性能的應用程序中一般都會用到線程。因為線程能充分利用系統的資源。在其他線程因為等待硬盤或網絡讀寫而 時,程序能繼續處理和運行。但是對線程運用不當,也會影響程序的性能。

例2:正確使用Vector類

Vector主要用來保存各種類型的對象(包括相同類型和不同類型的對象)。但是在一些情況下使用會給程序帶來性能上的影響。這主要是由Vector類的兩個特點所決定的。***,Vector提供了線程的安全保護功能。即使Vector類中的許多方法同步。但是如果你已經確認你的應用程序是單線程,這些方法的同步就完全不必要了。第二,在Vector查找存儲的各種對象時,常常要花很多的時間進行類型的匹配。而當這些對象都是同一類型時,這些匹配就完全不必要了。因此,有必要設計一個單線程的,保存特定類型對象的類或集合來替代Vector類.用來替換的程序如下(StringVector.java):

  1. public class StringVector   
  2. {   
  3. private String [] data;   
  4. private int count;   
  5. public StringVector() { this(10); // default size is 10 }   
  6. public StringVector(int initialSize)   
  7. {   
  8. data = new String[initialSize];   
  9. }   
  10. public void add(String str)   
  11. {   
  12. // ignore null strings   
  13. if(str == null) { return; }   
  14. ensureCapacity(count + 1);   
  15. data[count++] = str;   
  16. }   
  17.  
  18. private void ensureCapacity(int minCapacity)   
  19. {   
  20. int oldCapacity = data.length;   
  21. if (minCapacity > oldCapacity)   
  22. {   
  23. String oldData[] = data;   
  24. int newCapacity = oldCapacity * 2;   
  25. data = new String[newCapacity];   
  26. System.arraycopy(oldData, 0, data, 0, count);   
  27. }   
  28. }   
  29. public void remove(String str)   
  30. {   
  31. if(str == null) { return // ignore null str }   
  32. for(int i = 0; i < count; i++)   
  33. {   
  34. // check for a match   
  35. if(data[i].equals(str))   
  36. {   
  37. System.arraycopy(data,i+1,data,i,count-1); // copy data   
  38. // allow previously valid array element be gc'd   
  39. data[--count] = null;   
  40. return;   
  41. }   
  42. }   
  43. }   
  44. public final String getStringAt(int index) {   
  45. if(index < 0) { return null; }   
  46. else if(index > count)   
  47. {   
  48. return null// index is > # strings   
  49. }   
  50. else { return data[index]; // index is good }   
  51. }   
  52. /* * * * * * * * * * * * * * * *StringVector.java * * * * * * * * * * * * * * * * */   
  53. 因此,代碼:   
  54. Vector Strings=new Vecto 

 

希望通過本文的介紹,能能對你有幫助。

責任編輯:于鐵 來源: 互聯網
相關推薦

2011-07-21 13:51:38

java

2011-06-20 09:34:17

優化函數

2011-07-11 16:45:25

JAVA多態性

2010-05-26 17:39:38

Linux性能監控

2019-05-21 09:40:47

Elasticsear高性能 API

2010-05-12 12:25:12

MySQL性能優化

2011-07-14 16:56:21

2013-07-15 16:00:59

2022-02-18 19:24:15

性能優化代碼

2018-06-12 15:30:07

數據庫MySQLinsert

2009-12-10 17:02:50

PHP站點性能

2010-03-09 15:59:08

Linux硬盤掛載

2011-07-20 14:12:48

2011-07-14 17:17:21

C++指針

2011-07-11 16:55:31

Java

2011-07-22 13:00:46

java

2011-07-22 16:37:01

java接口

2011-06-28 15:14:10

ASP.NET性能優化

2009-12-31 15:05:00

Silverlight

2011-07-11 17:33:25

JAVA可移植性
點贊
收藏

51CTO技術棧公眾號

在线观看免费视频国产| 久久最新免费视频| 中文字幕在线观看精品| 欧美电影免费播放| 日韩欧美国产午夜精品| 六月婷婷在线视频| 成a人v在线播放| 国产在线播放一区| 7777精品久久久久久| 免费看的黄色录像| 成人h动漫免费观看网站| 色婷婷激情一区二区三区| 99热一区二区三区| 涩涩视频在线观看免费| 黑人巨大精品欧美黑白配亚洲| 午夜精品福利电影| 国产一二三av| 国产精品国产| 欧美日韩不卡一区| 无码人妻精品一区二区三区在线| 免费a在线看| 91香蕉视频在线| 91久久久在线| 黄色av网站免费观看| 欧美日韩成人| 一区二区三区久久精品| 亚洲欧美日韩偷拍| 国产亚洲精aa在线看| 色婷婷国产精品| 777久久精品一区二区三区无码| 美国成人毛片| 不卡一区二区中文字幕| 成人日韩av在线| 婷婷激情五月综合| 一区二区黄色| 欧美第一黄色网| 亚洲精品天堂网| 国产成人ay| 日韩成人在线电影网| 日本不卡一区二区在线观看| 不卡一二三区| 精品露脸国产偷人在视频| 青青在线免费视频| 黄网站app在线观看| 亚洲国产精品精华液2区45| 另类视频在线观看+1080p| 色婷婷av一区二区三区之红樱桃| 国产一区二区不卡| 亚洲一区二区三区四区视频| 中文字字幕在线中文乱码| 日日欢夜夜爽一区| 日韩美女av在线免费观看| 黄色在线观看国产| 国产精品一二| 欧美在线www| 国产一级精品视频| 亚洲影院在线| 日韩**中文字幕毛片| 久久久久久久久久久影院| 国产精品亚洲综合久久| 国产成人一区二区三区电影| 黄色在线观看国产| 日韩精品欧美精品| 国产精品电影网| 精品一区二三区| 秋霞成人午夜伦在线观看| 国产精品免费福利| 国产精品国产三级国产普通话对白| 久久精品久久99精品久久| 国产日韩欧美视频| 91av久久久| 经典一区二区三区| 成人羞羞视频免费| 亚洲三区在线播放| 欧美国产精品一区二区| 正在播放国产精品| 成人高潮aa毛片免费| 天涯成人国产亚洲精品一区av| 亚洲 高清 成人 动漫| 综合在线影院| 欧美日韩国产123区| 一级片免费在线观看视频| baoyu135国产精品免费| 亚洲毛片一区二区| 精品女人久久久| 欧美午夜久久| 日本91av在线播放| 国产精品久久久久久免费播放| 国产精品一区二区久久精品爱涩| 国产精品麻豆免费版| 亚洲 欧美 自拍偷拍| 国产日产亚洲精品系列| av 日韩 人妻 黑人 综合 无码| av电影免费在线看| 欧美日韩一区二区三区在线| 先锋资源在线视频| 国产精品探花在线观看| 欧美xxxx综合视频| 日本三级一区二区| 九九九久久久精品| 精品网站在线看| 午夜激情视频在线| 精品福利视频导航| 国产美女18xxxx免费视频| 欧美一级全黄| 久久久国产精品x99av| 久久青青草视频| 国产一区二区不卡在线| 欧美一二三区| а√天堂8资源在线官网| 欧美日韩一区二区三区| 亚洲综合在线一区二区| 久久99国产精品视频| 欧美乱人伦中文字幕在线| 国产99免费视频| av电影一区二区| 最新av在线免费观看| 中文字幕不卡三区视频| 精品国产伦理网| 日韩va亚洲va欧美va清高| 性色一区二区三区| 国产中文一区二区| 亚洲男同gay网站| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 国内偷自视频区视频综合| 在线观看亚洲国产| 久久久精品国产99久久精品芒果 | 国产精品国产三级国产专业不 | 久久精品无码一区二区三区| 国产卡一卡二在线| 国产精品蜜月aⅴ在线| 亚洲美女动态图120秒| 精品在线视频观看| 国产一区二区精品在线观看| 亚洲精品国产系列| 日韩天堂在线| 亚洲欧美另类自拍| 久久夜靖品2区| 懂色av一区二区三区免费看| 在线观看17c| 久久gogo国模啪啪裸体| 久久精品99久久久香蕉| 中日韩av在线| 中文一区一区三区高中清不卡| 99热成人精品热久久66| 日韩手机在线| 7777免费精品视频| 无码精品人妻一区二区| 偷拍日韩校园综合在线| youjizz.com国产| 欧美区日韩区| 99re国产视频| 欧美人与禽猛交乱配| 日韩精品专区在线影院重磅| 久久国产一级片| 成人性视频免费网站| 欧妇女乱妇女乱视频| 69精品国产久热在线观看| 欧美激情视频播放| 亚洲色欧美另类| 一本大道久久a久久综合| 亚洲一区二区三区日韩| 日韩av在线免费观看不卡| 色之综合天天综合色天天棕色| 校园春色亚洲色图| 日韩中文理论片| 国产精品羞羞答答在线| 亚洲精品国产精华液| 亚洲少妇一区二区三区| 99热免费精品在线观看| 免费精品视频一区二区三区| 国产综合色区在线观看| zzjj国产精品一区二区| www.久久精品.com| 懂色av一区二区三区| 永久免费毛片在线观看| 国产一区二区导航在线播放| 黄色片网址在线观看| 欧美**vk| 国产日韩换脸av一区在线观看| 亚洲小说区图片区都市| 亚洲精品美女视频| 五月天中文字幕| 亚洲欧美二区三区| 亚洲精品中文字幕在线播放| 日本vs亚洲vs韩国一区三区| 日本道在线视频| 日韩成人午夜| 91九色精品视频| av中文字幕在线看| 一区二区欧美亚洲| 成人免费一级视频| 欧美在线观看视频一区二区 | 国产高清免费av在线| 在线综合+亚洲+欧美中文字幕| 久久精品视频8| 国产女人18毛片水真多成人如厕 | 青青草视频在线免费播放| 国产欧美高清视频在线| 91九色单男在线观看| 成人线上视频| 精品自拍视频在线观看| 国内精品在线视频| 日韩精品一区二区三区在线| 日本一本在线观看| 亚洲成在人线免费| 人妻无码一区二区三区免费| 不卡视频一二三| 国产精品igao网网址不卡| 丝袜美腿亚洲色图| 成人黄色大片网站| 91精品一区二区三区综合| 青青草久久网络| 99久久人爽人人添人人澡| 国产成人精品久久二区二区| 成人性生交大片免费看网站 | 国产一二三在线| 日日狠狠久久偷偷四色综合免费| 天堂а在线中文在线无限看推荐| 宅男在线国产精品| 中文字幕人妻色偷偷久久| 欧美性猛交xxxx富婆| 国产奶水涨喷在线播放| 亚洲图片激情小说| 国产传媒在线看| 久久免费看少妇高潮| 人妻精油按摩bd高清中文字幕| 日本欧洲一区二区| 久久久久狠狠高潮亚洲精品| 伊人精品成人久久综合软件| 欧美精品一区二区性色a+v| 欧美精品尤物在线观看| 久久爱av电影| 久久97久久97精品免视看秋霞| 91gao视频| 另类视频一区二区三区| 国产日本欧美在线观看| 久草综合在线| 国产精品自拍视频| www.久久.com| 国产精品国产三级国产aⅴ浪潮| 性欧美freesex顶级少妇| 亚洲97在线观看| 多野结衣av一区| 91精品国产高清自在线看超| 91丝袜在线| 国内免费久久久久久久久久久| segui88久久综合| 国外成人免费在线播放| 国产亚av手机在线观看| 久久免费视频网| heyzo高清在线| 久久久久久久香蕉网| 国产高清中文字幕在线| 97在线精品国自产拍中文| 福利在线免费视频| 日韩av片免费在线观看| 国产精品亚洲d| 国产精品亚洲网站| 亚洲午夜国产成人| 91久久精品国产91久久性色tv| 日本一区二区三区播放| 粉嫩av一区二区三区免费观看| 综合伊人久久| 国产伦精品一区二区三区照片91| 网红女主播少妇精品视频| 欧洲成人一区二区| 久久精品国产www456c0m| 美女在线免费视频| 99riav1国产精品视频| 欧美污视频网站| 蜜桃av一区二区三区| 国产精品嫩草影视| 91在线你懂得| 貂蝉被到爽流白浆在线观看| 日韩理论片在线| 日韩 欧美 综合| 欧美中文字幕一区| 精品国产av一区二区| 精品国产3级a| 国产精品二线| 欧美另类极品videosbest最新版本| japanese色国产在线看视频| 国产精品精品视频| 亚洲精品福利| 欧美一二三四五区| 亚洲综合激情在线| 久久久亚洲精品无码| 日韩高清不卡在线| av影片在线播放| 久久九九全国免费| 欧美色图一区二区| 欧美性少妇18aaaa视频| 国产视频一区二区三| 亚洲精品动漫久久久久| 免费在线观看av片| 欧美中文在线字幕| 国产欧美日韩电影| 欧美一区二区三区成人久久片 | 国产乱论精品| 亚洲欧美久久久久一区二区三区| 海角社区69精品视频| 亚洲综合日韩欧美| 95精品视频在线| 国产成人自拍网站| 欧美性猛交xxxx免费看漫画 | 亚洲国产中文字幕在线观看| 最新97超碰在线| 81精品国产乱码久久久久久| 国产精品视频首页| 日本一区二区免费看| 亚洲第一毛片| 国产乱码一区二区三区四区| 久久精品在线观看| 四虎永久在线精品| 正在播放亚洲一区| 99re在线视频| 日韩69视频在线观看| 欧洲亚洲成人| 亚洲色成人www永久在线观看 | 欧美激情日韩| 午夜两性免费视频| 久久精品亚洲精品国产欧美| 国产成人亚洲欧洲在线| 日韩精品一区二区三区视频在线观看| www日韩tube| 国产97在线播放| 欧美电影免费网站| 青青草成人免费在线视频| 国产一区二区三区四| 超碰人人人人人人人| 91福利视频在线| 欧美视频综合| 欧美一区深夜视频| 五月激激激综合网色播| 国产男女免费视频| 成年人网站91| 国产一级免费av| 日韩精品一区二区三区蜜臀 | 欧美一区二区视频97| 日韩超碰人人爽人人做人人添| 人体内射精一区二区三区| 成人综合婷婷国产精品久久 | 国产精品v日韩精品v欧美精品网站 | 日韩一级二级三级精品视频| 黄色网页在线播放| 亚洲aa在线观看| 雨宫琴音一区二区三区| 香蕉视频色在线观看| 亚洲色图一区二区三区| 国产婷婷在线视频| 欧美高清自拍一区| www.亚洲一二| 激情伊人五月天| 久久色.com| 国产91av在线播放| www.99久久热国产日韩欧美.com| 99精品美女视频在线观看热舞| 中文字幕一区二区三区乱码 | 2014亚洲精品| 极品尤物久久久av免费看| 人妻av一区二区| 色综合久久久久综合体| 98在线视频| 51成人做爰www免费看网站| 亚洲午夜电影| 蜜桃精品成人影片| 欧美在线观看你懂的| av网站网址在线观看| 国产三级精品在线不卡| 视频一区二区三区入口| 蜜桃av.com| 精品99一区二区| 九九热线视频只有这里最精品| 中文视频一区视频二区视频三区| 国产成人在线网站| 日韩 欧美 综合| 日韩中文字幕视频在线| 99这里只有精品视频| 成年人视频在线免费| 亚洲欧洲99久久| 日韩中文字幕影院| 国产精品igao视频| 你懂的一区二区| wwwwww日本| 欧美一区二区精品在线| 欧美aa免费在线| 伊人婷婷久久| 95精品视频在线| 国产精品一区二区免费视频| 91精品国产高清久久久久久久久| 日韩欧美三级| 日本一区二区在线观看视频| 欧美性感一类影片在线播放| 黑人玩欧美人三根一起进| 性欧美精品一区二区三区在线播放| 国产成人av电影| 艳妇乳肉豪妇荡乳av无码福利| 欧美交受高潮1| 欧美肥老太太性生活|