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);
}
public
class SubOther {
public SomeImpl doSomething() {}
}
改為
public
class SubOther extends Other {
public SomeImpl doSomething() {}
}
使用類別(Class)定義物件
您可以透過公開成員來操作物件或取得物件資訊,方法是使用
物
件名稱加上「.」運算子,例如:
ball1.getRadius(0.1);
ball1.setName("GBall");
您可以透過公開成員來操作物件或取得物件資訊,方法是使用
物
件名稱加上「.」運算子,例如:
ball1.getRadius();
ball1.setName("GBall");
只是修改首頁的標題。。。XD
上
面的 StringSplit 有 String[] tokens = strOfReaded1.split("\t");
下面的 StringSplit 沒有 String[] 只有
tokens = strOfReaded2.split(",");
public
class Outer {
public static class Inner {
....
}
....
}
您可以如以下的方式來使用Inner類別:
Outer.Inner
inner = new Outer.Inner();
新增:
事實上,對於同一個
套件(package)
下的類別,可以直接呼叫彼此的protected成員,而對於不同套件(package)下的成員,不能呼叫彼此的protected成員。
新增
權限修飾與存取限制
。。。
將一些地方的字型改為Courier,應該比較好看
吧!。。。:)
加入以下的描述:
可以參考API文件中Object類別的hashCode()之建議:
- 在同一個應用程式執行期間,對同一物件呼叫 hashCode()方法,必須回傳相同的整數結果。
- 如果兩個物件使用equals(Object)測試結果為相等,
則這兩個物件呼叫hashCode()時,必須獲得相同的整數結果。
- 如果兩個物件使用equals(Object)測試結果為不相等,
則這兩個物件呼叫hashCode()時,要獲得不同的整數結果。
// 驗證電子郵件格式
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。
在運算時,也可以
自動裝箱與拆箱,例如:
Integer
i = 10;
System.out.println(i + 10);
System.out.println(i++);
上例中
會顯示20與21,應
該答案是20 and 10