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