<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避免創建重復的對象
    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;
    }
    }

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

    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 閱讀(202) 評論(0)  編輯  收藏 所屬分類: java基礎
    主站蜘蛛池模板: 日本牲交大片免费观看| 美女免费视频一区二区| 亚洲第一视频在线观看免费| 久久久久亚洲精品无码网址| 精品熟女少妇a∨免费久久| 亚洲日韩精品无码专区 | 日本人的色道免费网站| 最新亚洲人成网站在线观看 | 在线亚洲97se亚洲综合在线| 无码日韩精品一区二区免费暖暖 | 久久久久亚洲av无码专区蜜芽| eeuss免费影院| 亚洲精品视频专区| 九月婷婷亚洲综合在线| 国产亚洲欧美在线观看| 久久青青成人亚洲精品| 国产免费小视频在线观看| 久久青草精品38国产免费| 国产综合激情在线亚洲第一页| 久久青青成人亚洲精品| 亚洲国产精品专区在线观看| 免费视频专区一国产盗摄| 伊人免费在线观看高清版| 亚洲精品成a人在线观看夫| 亚洲AV日韩AV高潮无码专区| 亚洲国产精品嫩草影院久久| 97无码免费人妻超级碰碰夜夜| 精品国产免费一区二区三区香蕉| 亚洲AV无码乱码国产麻豆穿越| 永久黄网站色视频免费直播 | 免费大黄网站在线观| 91精品成人免费国产片| 色www永久免费| 黄色片网站在线免费观看| 亚洲一区二区影视| 亚洲一区影音先锋色资源| 亚洲中文字幕丝袜制服一区| 成人免费无毒在线观看网站| 免费观看激色视频网站bd| 成人无码a级毛片免费| 无码免费又爽又高潮喷水的视频 |