- 奇数性:i & 1 !=0 判断方式更高效,排除了负奇数判断错误的问题。
- 浮点数运算:使用BigDecimal(string)的方式来进行运算,避免数据被截断。
- 长整型运算:常量显示使用L来标志,避免数据移除。
- 十六进制&八进制的符号:两种进制只要最高位非0,即为负数,运算时注意符号。
- 基本类型转换:窄化类型转换-保留低位;宽化类型转换-高位扩展(保留原始符号)
- 两数交换:a=a^b; b=a^b; a=a^b,Java中避免使用连续赋值。
- 条件表达式类型提升:常量->byte->int->char->long。
char x = 'X';
int i = 0;
System.out.println(true ? x : 0); //X
System.out.println(false ? i : x);//88 - 复合赋值符号:E1 op=E2 等价于 E1=(T)((E1)op(E3)),T为E1的类型。所以存在一个隐式的类型转换
- 字符串拼接:”“+”“; ”+”表示的是字符相加运算。
正确输出结果:+ 操作符,不论是用作加法还是字符串连接操作,它都比 == 操作符的优先级高。下面只会输出true/false :
System.out. println("Animals are equal:"+ pig == dog);
等价于:
System.out.println(("Animals are equal: " + pig) == dog);
良好的JavaDoc:如果一个\u字符存在而在他后面不存在四个十六进制的数字,编译器将拒绝编译。
- String.replaceAll()第一个参数接受的是正则表达式,在使用的时候需要注意;第一个参数中存在反斜杠会将其后面的字符转义掉。在Windows平台上面File.separator()是一个’\’使用的时候,会将其后面的字符转义。使用:Matcher.quoteReplacement(File.separator)是一个不错的替换
- 栅栏柱错误:Random.nextInt(2)总会返回[0,n) 之间的整形数字,但是不包括n.
- Double.NaN的使用可以避免出现除数为0的异常(ArithmeticException)。
Java解惑-笔记
最新推荐文章于 2025-08-06 16:23:50 发布