坑1
public class TestDemo {
public static void main(String[] args) {
System.out.println(test("0")+","+test(null)+","+test("66"));
}
public static int test(String str){
try {
return str.charAt(0)-‘0‘;
} catch (NullPointerException e) {
return 2;
} catch (IndexOutOfBoundsException e) {
return 3;
} catch (Exception e) {
return 4;
}finally{
return 5;
}
}
}
打印三个5,finally{}代码块里面的内容一定会运行,会产生覆盖。
str.charAt(0)-‘0‘;改行代码返回str下标为0的字符与‘0’比较,然后如果是,返回0,否则为-1;
比如‘123’.charAt(0)-‘1‘是0;‘123’.charAt(0)-‘1‘是-1;
坑2
public class test {
public static void main(String[] args) {
int sum=0;
for(int i=0;i<10;i++){
sum=sum++;
}
System.out.println(sum);
}
}
打印的结果为0;因为是sum++,而不是++sum;