<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ǔ)
    主站蜘蛛池模板: 亚洲一区二区在线免费观看| 亚洲中文字幕久久精品无码喷水 | 暖暖免费高清日本一区二区三区| 亚洲欧洲日韩不卡| 香蕉免费一区二区三区| 久久久久亚洲精品美女| 69影院毛片免费观看视频在线| 亚洲gv白嫩小受在线观看| 久久精品一区二区免费看| 亚洲AV电影院在线观看| 最近免费中文字幕高清大全 | 羞羞视频在线观看免费| 亚洲国产高清在线一区二区三区| 免费国产a理论片| 中文字幕精品亚洲无线码二区| 野花香高清视频在线观看免费| 久久亚洲一区二区| 69天堂人成无码麻豆免费视频| 亚洲日本人成中文字幕| 日本特黄特黄刺激大片免费| 日韩在线一区二区三区免费视频| 亚洲色精品aⅴ一区区三区 | 免费高清国产视频| 亚洲在成人网在线看| 女人18毛片水真多免费播放| 黄页免费视频播放在线播放| 亚洲日产韩国一二三四区| 99久久人妻精品免费一区| 亚洲一区免费视频| 亚洲高清免费视频| 久久精品国产这里是免费| 国产亚洲国产bv网站在线| 又大又硬又爽免费视频| 免费黄网站在线看| 亚洲中文字幕无码久久2020| 亚洲一区二区三区无码影院| 2021精品国产品免费观看| 国产精品久久久久久亚洲小说| 亚洲av永久无码制服河南实里| 成人在线视频免费| 日本不卡免费新一区二区三区|