java陷阱-观北风网视屏有感
package test;import java.math.BigDecimal;public class Test {/** * @param args */public static void main(String[] args) {int j=0;for (int i=0;i<100;i++) {j=j++;}System.out.println(j);// 输出结果竟然不是100System.out.println(2.00-1.10);//输出结果竟然不是0.90System.out.println(new BigDecimal("2.00").subtract(new BigDecimal("1.10")));//正确写法long a = 24*60*60*1000*1000;//微妙long b = 24*60*60*1000;//毫秒System.out.println(a/b);//输出结果竟然不是1000//交换值运算int x = 12;int y = 45;//x^=y^=x^=y//错误写法,但在c语言中使用时是正确的,因此在c编程中常用y = (x^=(y^=x))^y;//虽然正确,但不推荐使用,杀鸡焉用牛刀,它是一高级运算System.out.println("x="+x+";"+"y="+y);System.out.println("H"+"a");System.out.println('H'+'a');//输出结果竟然是数字String let = "ABC";char[] num = {'1','2','3'};System.out.println(num);System.out.println(let+"ease as" +num);// \u0022是双引号的unicode转移字符System.out.println("a\u0022.length() +\u0022b".length());//上面一行代码等价于下面一行代码System.out.println("a".length()+"b".length());//System.out.println(Test.class.getName().replaceAll(".", "/")+".class");//错误写法System.out.println(Test.class.getName().replaceAll("\\.", "/")+".class");//必须使用转移字符}}