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

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

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

    七段

    無論怎樣,請讓我先感謝一下國家。

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      35 Posts :: 2 Stories :: 7 Comments :: 0 Trackbacks
    Less Code == [Less Bugs,Better Readability,Less programmers to hire, Less organizational communication costs, Less maitain cost]
    Less Code != [Higher Productivity,Better Performance]
    1, import static
    remove duplicated namespace
    what does it do?
    package com.toolbox.lang;
    public class ClassWithStaticMember {
      public static final String name="value";
      public static String say() {
        return "111";
      }
      public static String say(String msg) {
        return msg;
      }
    }
    package com.toolbox.lang;
    import static com.toolbox.lang.ClassWithStaticMember.say;
    import static com.toolbox.lang.ClassWithStaticMember.name;
    public class Test {
      public static void main(String[] args) {
        System.out.println(say());
        System.out.println(say(name));
      }
    }
    

    import同名的member
    意味著不同方法簽名的member都會import, e.g. say() and say(String msg)
    const #45 = Method      #46.#48;        //  com/toolbox/lang/ClassWithStaticMember.say:()Ljava/lang/String;
    const #46 = class       #47;    //  com/toolbox/lang/ClassWithStaticMember
    const #47 = Asciz       com/toolbox/lang/ClassWithStaticMember;
    const #48 = NameAndType #49:#38;//  say:()Ljava/lang/String;
    const #49 = Asciz       say;
    const #62 = Method      #46.#63;        //  com/toolbox/lang/ClassWithStaticMember.say:(Ljava/lang/String;)Ljava/lang/String;
    const #63 = NameAndType #49:#64;//  say:(Ljava/lang/String;)Ljava/lang/String;

    copy primitive type value
    意味著編譯后,Test class中static import的String, int 等是值的寫入class中,不會在去引用ClassWithStaticMember
       43:  ldc     #55; //String value
       45:  invokestatic    #57; //Method com/toolbox/lang/ClassWithStaticMember.say:(Ljava/lang/String;)Ljava/lang/String;
       48:  invokevirtual   #50; //Method java/io/PrintStream.println:(Ljava/lang/String;)V

    when to use it?
    Do it when frequent access to static members from one or two classes
    Not Do it when has naming conflict or complicated class body, otherwise, make you confuse with so many polluting namespace

    2, apply lanuage feature
    2.1 String contact
    String s = "a" + "b";
    compile into:
    const #15 = Asciz       ([Ljava/lang/String;)V;
    const #16 = String      #17;    //  ab
    if String constance + String constance
    直接編譯成結果寫入class
    else
    使用StringBuilder.append
    So always use "+" unless you need to use StringBuffer or other specific class
    3, inner class {{}}
      List<String> list = new ArrayList<String>() {{add("data1");add("data2");}};
    4, use PMD to find and remove duplicated code

    已有 0 人發表留言,猛擊->>這里<<-參與討論


    JavaEye推薦




    文章來源:http://sevenduan.javaeye.com/blog/504911
    posted on 2009-10-31 14:49 sevenduan 閱讀(310) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 大地资源网高清在线观看免费 | 国产三级在线观看免费| 亚洲免费观看视频| 一级毛片大全免费播放| 免费a在线观看播放| 国产精品亚洲色图| 国产午夜影视大全免费观看| 亚洲欧美日韩综合久久久| 免费a级毛片高清视频不卡| 国产午夜亚洲精品国产| 免费人成网站在线观看10分钟| 亚洲综合久久成人69| 亚洲黄色片免费看| 亚洲国产91在线| 免费观看大片毛片| 国产偷国产偷亚洲高清在线| 免费在线观看理论片| 一个人看的免费观看日本视频www 一个人看的免费视频www在线高清动漫 | 亚洲妇女无套内射精| 日韩在线免费看网站| 免费一级全黄少妇性色生活片| 亚洲国模精品一区| 免费无码又爽又刺激网站直播 | 美女视频黄频a免费大全视频| 亚洲VA综合VA国产产VA中| 久久久久久久久久免免费精品| 亚洲国产精品国自产电影| h视频在线观看免费网站| 亚洲小说图区综合在线| 亚洲成片观看四虎永久| 久久免费观看国产99精品| ww亚洲ww在线观看国产| 四虎永久在线精品视频免费观看| 久久久精品国产亚洲成人满18免费网站 | 亚洲一区综合在线播放| 成人免费视频试看120秒| 亚美影视免费在线观看| 亚洲男人的天堂在线| 国产精品免费_区二区三区观看 | 亚洲精品视频在线观看免费| 国产美女做a免费视频软件|