effective-java

    9熱度

    1回答

    從有效的Java第二版,第17項: 對於每一個公共或受保護的方法或構造函數,文檔 必須註明其重寫方法的方法或構造 調用 在同一後來它說: 構造函數不得直接或間接地調用可覆蓋的方法。 這兩個陳述不矛盾,還是我錯過了什麼?

    19熱度

    3回答

    我知道如果你讓 for (condition) { String s = "hi there"; } 只是一個String實例在所有的迭代創建的,不像String s = new String("hi there");,將創建在每個迭代一個新的實例。 但是,從約書亞布洛赫閱讀有效的Java:第2章第5項(第20頁),它規定: 此外,還保證了對象將 在同一運行的任何其他代碼重用發生的

    0熱度

    1回答

    項目23(不要使用新代碼的原始類型)有效的Java中聲稱,在Java代碼中使用原始類型總是危險 例如,它聲稱,下面的方法是危險和不安全 // Use of raw type for unknown element type - don't do this! static int numElementsInCommon(Set s1, Set s2) { int result = 0;

    5熱度

    2回答

    請參閱link。關於枚舉,布洛赫說 Java的枚舉類型是通過公共靜態最終場導出每個 枚舉常量一個實例類。 我讀了枚舉類文檔但有沒有公共靜態最終場,那麼如何做上述表示的成立。請解釋。 謝謝

    -3熱度

    1回答

    public class Person private final Date birthDate; // others fields omitted public boolean isBabyBoomer() { Calendar gmtCal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); gmtCal.set(1946,Ca

    5熱度

    1回答

    我正在學習有效的Java,第8條(在覆蓋等於時服從一般合同)。作者已經很清楚地解釋了這一點,但仍然有些部分沒有詳細闡述。 對於這個例子,他認爲定義爲類CaseInsensitiveString: public final class CaseInsensitiveString { private final String s; public CaseInsensitiveSt

    0熱度

    2回答

    我最近閱讀了Effective Java,發現Builder Pattern(item#2)非常有趣。 不過,我有一個問題:我們爲什麼要建立一個靜態的建設者,當我們能做到這一點: // JavaBeans Pattern public class NutritionFacts { private int servingSize; private int servings; private

    4熱度

    2回答

    所以我一直在經歷「Effective Java 2nd Ed。」 在第7項中,他談到了不使用終結器,因爲它們會導致很多問題。 但不是使用終結器,我們可以「提供一個明確的終止方法」,這些的一個例子是close語句。我不明白什麼是「終止聲明,它們和終結器之間有什麼區別?」 我得出結論:終止一個對象就像是將它歸零,因此資源被釋放,但我想我不會明白很好。所以我感謝所有幫助的差異。 謝謝!

    0熱度

    2回答

    我有一個「標準」JPanel內有兩個面板。我試圖創建一種模板類,然後擴展它並實現內容。問題是關於實施它的方式。 下面的代碼是我試圖使它工作,但我剛開始閱讀有效的Java書,我不熟悉靜態工廠方法。特別試圖抽象它們。 ,我試圖專門遵循一些從書上的提示是 考慮靜態工廠方法代替構造 青睞組成了繼承 不想接口抽象類 但我無法找到一個很好的解決方案尊重這些要點(沒有他們:P)。 public abstract

    -1熱度

    2回答

    在Bloch的Effective Java中,第2版,項目11:覆蓋克隆明智有下面的例子: class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack()