1. == 和 != 比较的是对象引用,equals()方法比较的是对象值。在自定义类中默认的equals()方法比较的是对象的引用,除非对equals()方法进行重写。
public class EqualsMethod {
public static void main(String[] args) {
Integer n1 = 47;
Integer n2 = 47;
System.out.println(n1.equals(n2)); //true
}
}
class Value {
int i;
}
public class EqualsMethod2 {
public static void main(String[] args) {
Value v1 = new Value();
Value v2 = new Value();
v1.i = v2.i = 100;
System.out.println(v1.equals(v2)); //false
}
}
2.科学记数法 1.39e-43f -> 1.39 × 10 的 -43 次方,Java中使用 double 值 Math.E 表示自然对数。
3.Java没有运算符重载的特性,也没有 sizeof() 方法。
4.从 float 和 double 转换为整数值时,小数位将被截断。 若你想对结果进行四舍五入,可以使用 java.lang.Math 的 round() 方法。
5.在对char,byte 和 short 类型的数值进行算术运算时,必须要进行显式的强制类型转换才能将结果重新赋值为原始类型。
6.在 Java 中,仅允许 for 循环在控制表达式中定义变量。
7.for-in 循环语法
任何一个返回数组的方法都可以使用for-in循环语法来遍历元素。
public class ForInString {
public static void main(String[] args) {
for(char c: "An African Swallow".toCharArray())
System.out.print(c + " ");
}
}
在 for-in 循环中使用 range() 方法:
import static onjava.Range.*;
public class ForInInt {
public static void main(String[] args) {
for(int i : range(10)) // 0..9
System.out.print(i + " ");
System.out.println();
for(int i : range(5, 10)) // 5..9
System.out.print(i + " ");
System.out.println();
for(int i : range(5, 20, 3)) // 5..20 step 3
System.out.print(i + " ");
System.out.println();
for(int i : range(20, 5, -3)) // Count down
System.out.print(i + " ");
System.out.println();
}
}
/*输出结果
0 1 2 3 4 5 6 7 8 9
5 6 7 8 9
5 8 11 14 17
20 17 14 11 8
*/
range(start,stop,step)方法的取值范围是一个左闭右开区间,range(10)取值0~9,range(5,10)取值5~9,range(5,20,3)步长为3,取值为5 8 11 14 17,如果步长为负数则逆转方向。
8.带标签的break与continue
标签是后面跟一个冒号的标识符,形如 lable1:
对Java来说,唯一用到标签的地方是在循环语句之前。当 break 和 continue搭配标签一起使用时,它们会中断当前循环并跳转到标签所在的地方开始执行。
label1:
outer-iteration {
inner-iteration {
// ...
break; // [1]
// ...
continue; // [2]
// ...
continue label1; // [3]
// ...
break label1; // [4]
}
}
[1] break 中断内部循环,并在外部循环直到结束;
[2] continue 移回内部循环的起始处;
[3] continue label1 同时中断外部和内部循环,然后继续从外部循环开始循环;
[4] break label1 同时中断外部和内部循环,并且不重新进入循环。
在Java中使用标签的唯一理由是有循环嵌套,而且想从多层嵌套中 break 或 continue。