目录
注意的点
- 浮点值不适用于无法接受舍入误差的金融计算。因为浮点数值采用二进制系统表示,而二进制系统无法精确地表示分数1/10。就好像十进制无法精确表示分数1/3一样。应该使用
BigDecimal
类。 - 当心注释中的
\u
,读程序时会替换为一个 换行符 - 强烈建议不要使用char类型
- Java中整型值和boolean之间不能相互转化。
- 常量关键字为
final
,习惯上常量名使用全大写。 - π和e常量近似值,
Math.PI
和Math.E
- 如果得到一个完全可预测的结果比运行速度更重要的话,应该使用StrictMath类。
- Math类提供了一些方法使整数有更好的安全性。如果返回错误结果,越界等问题,会生成一个异常。addExact, substractExact等等。p40
- &&和||是采用“短路”方式求值的。即如果第一个操作数已经能够确定表达式的值,就不会计算第二个操作数的值。
- 位运算符:&, |, ^(异或), ~(非), >>(符号位填充高位), <<, >>>(用0填充高位)
- Java的字符串是不可变的。如果想修改字符串,可以提取想要保留的子串,再与希望替换的字符拼接。例如
greeting = greeting.substring(0, 3) + "p!"
- 字符串重复,使用repeat()方法即可。
String repeated = "Java".repeat(3);
- 检测字符串是否相等,
一定不要使用
==,正确的为equals()
。==只能确定两个字符串是否 存放在同一个 位置上。Java中原始字符串 在堆区分配,不用后自动执行 垃圾回收。 - 字符串空串和null不同。null表示目前没有任何对象与该变量关联。检查字符串既不是null也不是空串:
if(str != null && str.length() != 0)