java容易忽略的问题
程序员文章站
2022-04-22 18:09:23
...
1. float运算的坑
float f = 9.9f; float m = f * 100.0f; System.out.println(m);
结果并不是990
不管是乘以100还是100.0f
8.9f 也有这个问题
2. string split问题
String ss = "5.11.17.0/24,,2635167,,0,1,,,,"; int i = 0; System.out.println("size: " + ss.split(",").length); for (String s : ss.split(",")) { System.out.println(String.format("str [%d]: [%s]", i, s)); i++; }
可以发现输出的size是6,后面的空串都直接被丢弃了,而中间的是被保留的
3. Boolean.TRUE本质上是预定义的new Boolean(true)
public static final Boolean TRUE = new Boolean(true);
Boolean trueA = new Boolean(true); System.out.println(trueA == Boolean.TRUE); //false!!! System.out.println(trueA == true); //true所以在确定Boolean类型的变量不为null的时候,最好还是和true,false比较,或者直接放if里面
同样的对于Integer和String,如果指向同一个常量,那么直接用==比较是相等的,但是如果是新new出来的,用==比较就不相等了
Integer int1 = 1; Integer int11 = new Integer(1); System.out.println(int1 == int11); //false!!!
上一篇: Oracle拆分split字符串,instr函数的使用
下一篇: Oracle Split