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

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

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


    posts - 10,comments - 4,trackbacks - 0
    Avoid creating duplicate objects避免創(chuàng)建重復(fù)的對象
    It is often appropriate to reuse a single object instead of creating a new functionally equivalent object each time it is needed. Reuse can be both faster and more stylish. An object can always be reused if it is immutable

    String s = new String("silly"); // DON'T DO THIS!

    String s = "No longer silly";//do this

    In addition to reusing immutable objects, you can also reuse mutable objects that you know will not be modified. Here is a slightly more subtle and much more common example of what not to do, involving mutable objects that are never modified once their values have been computed:
    除了重用非可變的對象之外,對于那些已知不會被修改的可變對象,你也可以重用它們。

    such as
    public class Person {
    private final Date birthDate;
    // Other fields omitted
    public Person(Date birthDate) {
    this.birthDate = birthDate;
    }
    // DON'T DO THIS!
    public boolean isBabyBoomer() {
    Calendar gmtCal =
    Calendar.getInstance(TimeZone.getTimeZone("GMT"));
    gmtCal.set(1946, Calendar.JANUARY, 1, 0, 0, 0);
    Date boomStart = gmtCal.getTime();
    gmtCal.set(1965, Calendar.JANUARY, 1, 0, 0, 0);
    Date boomEnd = gmtCal.getTime();
    return birthDate.compareTo(boomStart) >= 0 &&
    birthDate.compareTo(boomEnd) < 0;
    }
    }

    改良的版本.
    The isBabyBoomer method unnecessarily creates a new Calendar, TimeZone, and two Date instances each time it is invoked. The version that follows avoids this inefficiency with a static initializer:

    class Person {
    private final Date birthDate;
    public Person(Date birthDate) {
    this.birthDate = birthDate;
    }
    /**
    * The starting and ending dates of the baby boom.
    */
    private static final Date BOOM_START;
    private static final Date BOOM_END;
    static {
    Calendar gmtCal =
    Calendar.getInstance(TimeZone.getTimeZone("GMT"));
    gmtCal.set(1946, Calendar.JANUARY, 1, 0, 0, 0);
    BOOM_START = gmtCal.getTime();
    gmtCal.set(1965, Calendar.JANUARY, 1, 0, 0, 0);
    BOOM_END = gmtCal.getTime();
    }
    public boolean isBabyBoomer() {
    return birthDate.compareTo(BOOM_START) >= 0 &&
    birthDate.compareTo(BOOM_END) < 0;
    }
    }

    。一個適配器是指這樣一個對象:它把功能委
    托給后面的一個對象,從而為后面的對象提供一個可選的接口。由于適配器除了后面的對象之外,沒有其他的狀態(tài)信息,所以針對某個給定對象的特定適配器而言,它不需要創(chuàng)建多個適配器實例。

    This item should not be misconstrued to imply that object creation is expensive and should be avoided. On the contrary, the creation and reclamation of small objects whose constructors do little explicit work is cheap, especially on modern JVM implementations. Creating additional objects to enhance the clarity, simplicity, or power of a program is generally a good thing.
    Conversely, avoiding object creation by maintaining your own object pool is a bad idea unless the objects in the pool are extremely heavyweight. A prototypical example of an object that does justify an object pool is a database connection. The cost of establishing the connection is sufficiently high that it makes sense to reuse these objects. Generally speaking, however, maintaining your own object pools clutters up your code, increases memory footprint, and harms performance. Modern JVM implementations have highly optimized garbage collectors that easily outperform such object pools on lightweight objects.
    posted on 2006-03-31 15:19 dodoma 閱讀(203) 評論(0)  編輯  收藏 所屬分類: java基礎(chǔ)
    主站蜘蛛池模板: 日韩一卡2卡3卡4卡新区亚洲 | 亚洲国产精品人久久电影| 两个人看的www视频免费完整版| 国产片免费在线观看| 亚洲AV香蕉一区区二区三区| 午夜无遮挡羞羞漫画免费| 亚洲香蕉久久一区二区三区四区| 亚洲精品在线免费看| 亚洲不卡1卡2卡三卡2021麻豆| ww在线观视频免费观看| 色在线亚洲视频www| 成人免费视频小说| 国产亚洲精品仙踪林在线播放| 亚洲av无码成人精品区在线播放| 一级美国片免费看| 亚洲AV中文无码字幕色三| 香港a毛片免费观看| 亚洲人成激情在线播放| 美女被免费视频网站a国产| 美女又黄又免费的视频| 国产亚洲精品精品国产亚洲综合 | 日韩在线观看免费完整版视频| 亚洲国产午夜福利在线播放| 全黄大全大色全免费大片| 久久亚洲中文字幕精品有坂深雪| 日本片免费观看一区二区| 亚洲高清毛片一区二区| 亚洲日本乱码在线观看| 2021精品国产品免费观看| 亚洲成在人线在线播放无码| 久久久久亚洲AV综合波多野结衣 | 亚洲avav天堂av在线网毛片| 亚洲国产成人爱av在线播放| 午夜视频免费在线观看| 亚洲欧美成人av在线观看 | 亚洲欧洲高清有无| 国产高清在线免费| 国产成人免费ā片在线观看老同学 | 亚洲?v无码国产在丝袜线观看| 秋霞人成在线观看免费视频 | 亚洲毛片一级带毛片基地|