http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/AbstractClass.htm

如果一個方法中包括了抽象方法,則該類別稱之為「抽象類別」(Abstract class)

改為:

如果一個類別中包括了抽象方法,則該類別稱之為「抽象類別」(Abstract class)
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/Package.htm

介面的權限都是"public",所以即使不指定public仍是預設為public,例如下例與上例是相同的:
interface IRequest {
void execute();
}

改為:

介面的方法權限預設都是"public",所以即使方法宣告時不指定public仍是預設為public,例如下例與上例是相同的:

public interface IRequest {
void execute();
}
主 控台輸入格式控制 改成 主 控台輸出格式控制
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/ProtectedMember.htm

如果在定義成員時沒有設定任何的存取修飾,則為預設(default)的存取權限,預設存取權限可以在同一個套件(package)中的其它類別直接存取,但在子類別中不能被直接存取。

改為:

如果在定義成員時沒有設定任何的存取修飾,則為預設(default)的存取權限,預設存取權限可以在同一個套件(package)中的其它類別直接存取。

http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/ObjectClass.htm

改了一下equals()那邊的描述...
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/BoxingCarefully.htm
事實上,當您寫:

Integer i = 100;

編譯器真正會將之轉換為:
Integer i = Integer.valueOf(100);

valueOf()方法會將-128到127的值放到快取之中,以重複使用,這可以查看Integer.java的原始碼得知:
public static Integer valueOf(int i) {
    final int offset = 128;
    if (i >= -128 && i <= 127) { // must cache
        return IntegerCache.cache[i + offset];
    }
        return new Integer(i);
}

http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/OverRide.htm
public class SubOther {
    public SomeImpl doSomething() {}
}

改為

public class SubOther extends Other {
    public SomeImpl doSomething() {}
}


JAVA(上) -> 取得使用者輸入

中間的(實際上,這是 Decorator 模式 的一個應用)。 Decorator的連結錯誤。

應為 http://caterpillar.onlyfun.net/Gossip/DesignPattern/DecoratorPattern.htm
使用類別(Class)定義物件

您可以透過公開成員來操作物件或取得物件資訊,方法是使用物 件名稱加上「.」運算子,例如:
ball1.getRadius(0.1);
ball1.setName("GBall");

您可以透過公開成員來操作物件或取得物件資訊,方法是使用物 件名稱加上「.」運算子,例如:
ball1.getRadius();
ball1.setName("GBall");
增加 Object 類別 的內容。
foreach與陣列斷言(Assertion)加了一 些東西…
重新定義(Override)方法建構方法(Constructor)關於 static 成員型態通配字元 加了一些東西…

新增 使用 Console 物件 - JDK 6 、 Arrays 的copyOf() - JDK 6
新增 … 預 設建構子
只是修改首頁的標題。。。XD
新增一篇:
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/InterfaceMultiInheritance.htm
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/SplitString.htm
上 面的 StringSplit 有 String[] tokens = strOfReaded1.split("\t");
下面的 StringSplit 沒有 String[] 只有 tokens = strOfReaded2.split(",");

http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/ThrowThrows.htm
新增:

如果使用繼承時,在父類別的某個方法上宣告了throws某些例外,而在子類別中重新定義該方法時,您可以:

但是您不可以:

http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/InnerClass.htm
新增:
被宣告為static的內部類別,事實上也可以看作是另一種名稱空間的管理方式,例如:
public class Outer {
    public static class Inner {
        ....
    }
    ....
}

您可以如以下的方式來使用Inner類別:
Outer.Inner inner = new Outer.Inner();
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/ProtectedMember.htm
新增:
事實上,對於同一個 套件(package) 下的類別,可以直接呼叫彼此的protected成員,而對於不同套件(package)下的成員,不能呼叫彼此的protected成員。

新增 權限修飾與存取限制 。。。
新增 斷言(Assertion) 。。。

http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/ProtectedMember.htm
新增:
如果在定義成員時沒有設定任何的存取修飾,則為預設(default)的存取權限,預設存取權限可以在同一個 套件(package) 中的其它類別直接存取,但在子類別中不能被直接存取。

http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/OverRide.htm
新增:
注意!您無法重新定義static方法,一個方法要被重新定義,它必須是非static的,如果您在子類別中定義一個有同樣簽署(signature)的 static成員,那不是重新定義,那是定義一個屬於該子類別的static成員。

http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/FinalKeyword.htm
新增:
如果在資料成員上加上final關鍵字,但未給予該資料成員初值,則初值的初始化被延遲,該資料成員必須在建構方法中進行初始化,且初始化之後不得改變其 值,例如:
public class SomeClass {
    private final int some;

    public SomeClass() {
        some = 10; // 也可以是一個運算式,或是方法的傳回值
    }

    ....
}

http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/Package.htm
新增:
如果定義類別成員時沒有指定public、protected或private的存取修飾,則為預設(Default)權限,成員將只能於同一個 package中被直接存取,通常稱之為package-friendly或package-private,且該成員將無法於子類別中被直接存取。
將一些地方的字型改為Courier,應該比較好看 吧!。。。:)
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/ObjectClass.htm
加入以下的描述:
可以參考API文件中Object類別的hashCode()之建議:
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/FirstJava.htm
加入一行:
關於main方法的說明,您還可以參考 The main method
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/RegularExpression.htm
UseRegularExpression.java中。。。
 // 驗證電子郵件格式 
if(str.matches(
"^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$"))
System.out.println("格式正確");

改為
// 驗證電子郵件格式
if(str.matches(
"^[_a-z0-9-]+([.][_a-z0-9-]+)*@[a-z0-9-]+([.][a-z0-9-]+)*$"))
System.out.println("格式正確");


http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/LogicalBitwiseOperator.htm 中。。。

在位元運算上,Java還有左移(< <)右移 (>>)兩個運算子,左移運算子會將所有的位元往左移指定的位 數,左邊被擠出去的位元會被丟棄,而右邊會補上0;右移運算則是相反,會將所有的位元往右移指定的位數,右邊被擠出去的位元會被丟棄,至於左邊位元補0或 補1 則不一定,視系統而定。

改為

在位元運算上,Java還有左移(< <)右移 (>>)兩個運算子,左移運算子會將所有的位元往左移指定的位 數,左邊被擠出去的位元會被丟棄,而右邊會補上0;右移運算則是相反,會將所有的位元往右移指定的位數,右邊被擠出去的位元會被丟棄,至於左邊位元補0或 補1 則視最左邊原來的位元而定,如果原來是0就補0,是1就補1,您還可以使用>>>運 算子,這個運算子在右移後一行在最左邊補上0。
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/AutoBoxingUnBoxing.htm

在運算時,也可以 自動裝箱與拆箱,例如:

Integer i = 10;
System.out.println(i + 10);
System.out.println(i++);


上例中 會顯示2021,應 該答案是20 and 10