亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

優化JAVA性能的幾種方法

2019-11-18 10:41:39
字體:
來源:轉載
供稿:網友
添加較小的輔助性函數

  在最初版本的Swing工具包中, 創建過多的Point、Rectangle和Dimension對象會嚴重地影響程序的性能。盡管一次在一個Point或Rectangle對象中返回多個值似乎更有效率,但這樣作的代價要比調用多個方法高得多。在最近的Swing版本推出之前,這個問題可以通過簡單地在組件或其他類中添加一些輔助性的方法得到改善,如下所示:

  public int getX() { return myBounds.x; }
  public int getY() { return myBounds.y; }
  public int getHeight() { return myBounds.height; }
  public int getWidth() { return myBounds.width; }

  現在,調用程序可以在不創建臨時對象的情況下得到同樣的結果,如下所示:

  int x = component.getX();
  int y = component.getY();
  int h = component.getHeight();
  int w = component.getWidth();

  原來的getBounds()仍然可以使用,較小的輔助性函數只不過提供了一種實現同樣目標的效率更高的方法,其結果是,Rectangle的接口將完全暴露在組件的接口中。當修改Swing使之支持并可以使用這些較小的輔助性函數后,其結果是,Swing中的許多操作的運行速度都比原來快了二倍。由于GUI代碼對性能比較敏感,這一改進的意義是重大的。

  這種技術帶來的負作用是對象擁有的方法更多了,而且要獲取同一種信息可以有多種方法,這就使文件變得相當大而且也更加復雜了,不利于用戶采用這一技術。但是,象Swing的例子顯示的那樣,在對性能要求比較高的情況下,這種優化技術還是十分有效的。

  可變性的利用

  除了在組件中添加象上面討論的getX()等具有簡單數據類型值的臨時函數外,java 2還使用了其他的技術來減少在AWT和Swing中的對象創建活動。在組件和其他的GUI類中添加另一種版本的getBounds(),就可以在沒有創建臨時對象的前提上使調用程序得到象Rectangle類型的返回值:

  public Rectangle getBounds(Rectangle returnVal) {

   returnVal.x = myBounds.x;

   returnVal.y = myBounds.y;

   returnVal.height = myBounds.height;

   returnVal.width = myBounds.width;

   return returnVal;

  }

  調用程序仍然必須創建一個Rectangle對象,不過,可以在以后的調用中重用它。假如一個調用程序反復調用許多Component對象,就可以創建一個Rectangle對象并在每個Component中使用它。需要注重的是,這一技術只適用于可變的對象類型,不可能通過這種方式減少創建String類對象。

  結合二家之長

  一個更好的解決Point等簡單類的對象創建問題的方法是使得Point類成為不可變的,然后再定義一個可變的子類,具體方法如下面的例子所示:

  public class Point {

   PRotected int x, y;

   public Point(int x, int y) { this.x = x; this.y = y; }

   public final int getX() { return x; }

   public final int getY() { return y; }

  }

  public class MutablePoint extends Point {

   public final void setX(int x) { this.x = x; }

   public final void setY(int y) { this.y = y; }

  }

  public class Shape {

   private MutablePoint myLocation;

   public Shape(int x, int y) { myLocation = new MutablePoint(x, y); }


   public Point getLocation() { return (Point) myLocation; }

  }

  在上面的例子中,Shape可以安全地返回myLocation的地址,因為調用程序假如試圖修改這些域或調用他們的"調節器"就會返回一個出錯信息。當然,調用程序仍然可以將Point轉換為MutablePoint,但很明顯這會帶來不安全性,雖然調用程序也會得到它們所需要的返回值。)C++的開發人員會注重到,這一技術與C++中的返回一個Rectangle的常量地址(const Rectangle&)有點類似━━Java不具備這樣的特性。

  在Java 1.3類庫中的java.math.BigInteger類中,一個類無需創建新的對象就返回一個"只讀的"對象。MutableBigInteger類不是公開的,它只供java.math類庫內部使用。但由于BigInteger類中的一些方法(例如gcd())是由許多的算術操作組成的,完成這些操作而無需創建臨時對象將極大地改善程序的性能。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人小视频在线观看| 亚洲欧美国内爽妇网| 欧美午夜激情在线| 亚洲毛片一区二区| 一本一本久久a久久精品综合小说| 成人在线国产精品| 欧美自拍视频在线观看| 久久久日本电影| 中文字幕亚洲精品| 国产精品一区二区三| 91久久精品久久国产性色也91| 日韩av快播网址| 国产精品99久久久久久www| 欧美一区二区三区免费观看| 国产精品第一区| 久久久免费观看视频| 91美女片黄在线观| 日韩精品免费视频| 欧美另类交人妖| 欧美日韩日本国产| 国语自产精品视频在线看| 永久免费毛片在线播放不卡| 欧美夫妻性生活xx| 午夜美女久久久久爽久久| 777精品视频| 久久这里有精品视频| 日韩在线观看免费高清| 欧美成人合集magnet| 丝袜情趣国产精品| 亚洲精品一区中文| 欧美成人国产va精品日本一级| 欧美人在线观看| 在线观看91久久久久久| 欧美另类99xxxxx| 韩国19禁主播vip福利视频| 中文字幕欧美视频在线| 亚洲国产精品yw在线观看| 日本一区二区不卡| 亚洲国产精品yw在线观看| 亚洲丁香久久久| 韩国福利视频一区| 国产精品久久二区| 色综合久久久久久中文网| 2019国产精品自在线拍国产不卡| 精品国产福利视频| 原创国产精品91| 国产美女扒开尿口久久久| 欧美三级欧美成人高清www| 91色视频在线观看| 欧美又大又粗又长| 狠狠久久亚洲欧美专区| 欧美精品在线第一页| 欧美日韩亚洲91| 亚洲第一av网站| 伊人久久大香线蕉av一区二区| 亚洲性视频网站| 日韩美女在线播放| 中文国产成人精品| 97香蕉超级碰碰久久免费的优势| 中日韩美女免费视频网站在线观看| 色综合男人天堂| 91精品国产高清久久久久久久久| 2019中文字幕免费视频| 国产成人亚洲综合91精品| 在线精品国产成人综合| 国产亚洲精品91在线| 亚洲mm色国产网站| 亚洲va欧美va国产综合剧情| 欧美xxxx做受欧美.88| 欧美重口另类videos人妖| 久久色免费在线视频| 26uuu日韩精品一区二区| 久久资源免费视频| xxx欧美精品| 国产亚洲一区二区精品| 日韩在线小视频| 精品综合久久久久久97| 亚洲国产婷婷香蕉久久久久久| 亚洲精品国产福利| 亚洲激情国产精品| 日韩中文在线中文网在线观看| 中文字幕精品国产| www.日韩免费| 丝袜亚洲欧美日韩综合| 日韩在线视频观看正片免费网站| 插插插亚洲综合网| 久久精品99无色码中文字幕| 91麻豆国产精品| 国产精品18久久久久久首页狼| 国产色婷婷国产综合在线理论片a| 91麻豆桃色免费看| 九九热精品在线| 午夜免费在线观看精品视频| 日韩小视频网址| 日韩精品视频免费专区在线播放| 日韩精品在线看| 久久久久久尹人网香蕉| 日韩欧美在线网址| 成人精品在线视频| 久久综合久久88| 国产欧美日韩最新| 最新的欧美黄色| 4p变态网欧美系列| 欧美影院在线播放| 欧美日韩精品在线播放| 91亚洲va在线va天堂va国| 亚洲精品视频在线播放| www.日韩av.com| 精品香蕉在线观看视频一| 亚洲精品电影网站| 国产一区二区日韩精品欧美精品| 欧美成人精品在线| 亚洲国产精久久久久久久| 亚洲精品中文字幕av| 丝袜美腿精品国产二区| 国产亚洲精品久久久| 欧美性xxxxxx| 久久五月天色综合| 欧美又大又硬又粗bbbbb| 国产一区二区三区久久精品| 欧美高清视频在线观看| 尤物九九久久国产精品的分类| 91精品国产网站| 2020欧美日韩在线视频| 欧美成人手机在线| 国产福利精品av综合导导航| 久久视频在线直播| 不卡毛片在线看| www高清在线视频日韩欧美| 亚洲第一区中文99精品| 亚洲一品av免费观看| 国产一区二区三区丝袜| 日韩精品中文字幕在线| 欧美老女人性视频| 中文字幕精品—区二区| 久久久精品一区二区| 亚洲精品一区二区在线| 欧美成人剧情片在线观看| 成人a级免费视频| 久久免费在线观看| 欧美激情一区二区久久久| 久久电影一区二区| 亚洲欧美中文日韩v在线观看| 热久久免费国产视频| 中文字幕在线看视频国产欧美| 日韩精品在线第一页| 2020久久国产精品| 成人a在线观看| 欧美性xxxx| 欧美大全免费观看电视剧大泉洋| 久热国产精品视频| 国产精品丝袜久久久久久不卡| 97欧美精品一区二区三区| 日韩欧美精品中文字幕| 丰满岳妇乱一区二区三区| 亚洲欧美中文另类| 日韩亚洲欧美中文在线| 91国在线精品国内播放| 最新国产成人av网站网址麻豆| 7777精品久久久久久| 欧美精品福利在线| 51精品国产黑色丝袜高跟鞋| 亚洲人a成www在线影院| 亚洲精品福利视频|