1、常见的变量自增 i++与++i
public class Demo {
public static void main(String[] args) {
Demo.getValue(2);
}
public static void getValue(int n){
n=n++;
//这里n先进行了赋值,赋给了n,所以n=2,虽然进行了自增但是没有赋值
int m=n++;
//这里n先进行了赋值,赋给了m,所以m=2,然后进行了自增 m=2,n=3
int q= n+ n++*++n;
//q=3+3*5 n=5
System.out.println("n="+n);
System.out.println("m="+m);
System.out.println("q="+q);
}
}
运行结果:
n=5
m=2
q=18
public class Demo {
public static void main(String[] args) {
Demo.getValue(2);
}
public static void getValue(int n){
n=n++;
//这里n先进行了赋值,赋给了n,所以n=2,虽然进行了自增但是没有赋值
int m=n++;
//这里n先进行了赋值,赋给了m,所以m=2,然后进行了自增 m=2,n=3
int q= n+ ++n*n++;
//q=3+4*4 n=5
System.out.println("n="+n);
System.out.println("m="+m);
System.out.println("q="+q);
}
}
运行结果:
n=5
m=2
q=19
2、Math类中提供了三个与取值相关的方法
ceil、floor、round
ceil:英文意思是“天花板”,向上取整,Math.ceil(11.3)=12,Math.ceil(-11.3)=-11;
floor:英文意思是“地板”,向下取整,Math.floor(11.8)=11,Math.floor(-11.8)=-12;
round:四舍五入,算法为Math.round(x)=Math.floor(x+0.5),Math.round(11.5)=12,Math.ceil(-11.5)=-11;
3、equals常见的空指针错误
假设我们现在有一个类,例如String,对于如下代码:
String str = null;
if (str.equals("Hello World!")){
System.out.println("Yes");
}else {
System.out.println("No");
}
就会抛出空指针异常,但是,如果我们把第二行的条件判断改为:
if ("Hello World!".equals(str))
就不会抛出空指针异常