<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
    主站蜘蛛池模板: 亚洲AV日韩精品久久久久| 亚洲国产美女在线观看| 精品国产免费一区二区三区香蕉 | 99在线免费观看| 亚洲精品福利网站| 亚洲Av无码乱码在线播放| 一区二区三区观看免费中文视频在线播放 | 亚洲中文字幕视频国产| 1000部拍拍拍18勿入免费凤凰福利 | 国产成人精品免费视频大全五级| 丰满妇女做a级毛片免费观看| 亚洲成A∨人片在线观看无码| 全免费a级毛片免费看无码| 香蕉视频在线免费看| 77777亚洲午夜久久多喷| 国产亚洲精品线观看动态图| 亚洲一区二区免费视频| 一级黄色免费大片| 亚洲一区AV无码少妇电影| 国产精品久久久亚洲| 国产成人精品免费直播| 91手机看片国产永久免费| 中国一级特黄的片子免费| 亚洲国产成人AV在线播放| 国产精品久久久亚洲| 免费人成在线观看视频播放| 久久久久av无码免费网| 两性色午夜免费视频| 亚洲av永久中文无码精品| 久久99亚洲网美利坚合众国| 亚洲一级片内射网站在线观看| 成人爽A毛片免费看| 99热这里只有精品6免费| 国产日韩AV免费无码一区二区三区| 亚洲一欧洲中文字幕在线| 亚洲成AV人片在线观看无码 | 国外成人免费高清激情视频| 69视频在线观看高清免费| 中国一级毛片免费看视频| 免费很黄无遮挡的视频毛片| 亚洲日韩一区精品射精|