<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    wangflood

    精心維護(hù)一個(gè)技術(shù)blog,為了工作,也是愛(ài)好。

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      14 Posts :: 19 Stories :: 8 Comments :: 0 Trackbacks
    近幾天,看老大的框架,里面出現(xiàn)這樣的語(yǔ)句for (int i = 0, size = c.size(); i < size; i++),我總覺(jué)得這個(gè)和for (int i = 0; i < c.size(); i++)沒(méi)有什么不同,畢竟java不是C,一般情況下,我們程序給運(yùn)行了,底層JVM應(yīng)該給我們優(yōu)化才是。于是,我寫(xiě)了個(gè)程序?qū)Ρ攘艘幌?,發(fā)現(xiàn)性能情況還是很大不同的。
    package com.wang.test;

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Set;

    public class Test {
        
    private final static int Length = 1000;

        
    public static void main(String[] args) {
            
    int length = 1000;
            List
    <Double> c = new ArrayList<Double>();
            initSet(c);
            
    long t1 = System.currentTimeMillis();
            test1(c);
            
    long t2 = System.currentTimeMillis();
            test2(c);
            
    long t3 = System.currentTimeMillis();
            test3(c);
            
    long t4 = System.currentTimeMillis();
            test4(c);
            
    long t5 = System.currentTimeMillis();
            System.out
                    .println(
    "*******************************************************************");
            System.out.println(t2 
    - t1);
            System.out.println(t3 
    - t2);
            System.out.println(t4 
    - t3);
            System.out.println(t5 
    - t4);
        }

        
    private static void test3(List<Double> c) {
            
    for (Iterator<Double> iterator = c.iterator(); iterator.hasNext();) {
                System.out.println(iterator.next());

            }

        }

        
    private static void test2(List<Double> c) {
            
    for (int i = 0; i < c.size(); i++) {
                System.out.println(c.get(i));
            }

        }

        
    private static void test4(List<Double> c) {
            
    for (int i = c.size() - 1; i >= 0; i--) {
                System.out.println(c.get(i));
            }

        }

        
    private static void test1(List<Double> c) {
            
    for (int i = 0, size = c.size(); i < size; i++) {
                System.out.println(c.get(i));
            }
        }

        
    private static void initSet(List<Double> c) {
            
    for (int i = 0; i < Length; i++) {
                c.add(Math.random());
            }

        }

    }
    Length==1000時(shí):
    94
    62
    32
    31
    Length==10000時(shí):
    516
    406
    375
    344

    Length==100000時(shí):
    3563
    3453
    3641
    3453
    Length==1000000時(shí):
    35109
    34625
    36469
    34891


    JVM到底有沒(méi)有優(yōu)化呢。我沒(méi)有打開(kāi)匯編看。但至少我得出結(jié)論:for (int i = 0, size = c.size(); i < size; i++)這種寫(xiě)法沒(méi)有必要。數(shù)據(jù)量不大的時(shí)候,反而效率低很多。

    各位高手給建議。。。。。。。Why



    posted on 2011-03-29 12:46 wangflood 閱讀(1008) 評(píng)論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 四虎影视免费永久在线观看| 久久精品乱子伦免费| 在线视频观看免费视频18| 亚洲国产二区三区久久| 免费的全黄一级录像带| 久久亚洲精品成人| 一级毛片**不卡免费播| 亚洲成a人片毛片在线| 四虎在线最新永久免费| 亚洲成_人网站图片| 亚洲午夜福利精品无码| 一个人看的www在线免费视频| yy6080亚洲一级理论| yy一级毛片免费视频| 亚洲成a人片在线观看日本| 久久99热精品免费观看动漫| 亚洲麻豆精品果冻传媒| 国产在线观看免费观看不卡| 亚洲精品成a人在线观看☆| 国产大片免费观看中文字幕| 有码人妻在线免费看片| 亚洲成AV人在线播放无码 | 亚洲AV永久无码精品一区二区国产 | 亚洲AV无码男人的天堂| 亚洲第一区精品日韩在线播放| 一区二区免费电影| 亚洲成a人片在线观看中文动漫| 2021免费日韩视频网| 免费播放美女一级毛片| 亚洲人成无码网站| 无码精品A∨在线观看免费| 亚洲av成人无码网站…| 亚洲国产精华液网站w| 无码免费午夜福利片在线| 日韩久久无码免费毛片软件| 亚洲AV日韩AV永久无码久久| 成人影片麻豆国产影片免费观看 | 亚洲人成网站在线观看播放青青| 免费无码又爽又刺激毛片| 伊人久久大香线蕉免费视频| 亚洲影视一区二区|