Java的特性:
1、使用接口替代多继承。
2、float类型数值后缀要加F,不加默认为double
3、要想在计算数值中不含有任何舍入误差,应该使用BigDecimal
4、&&和||运算符使用短路方式求值,即第一个操作数已经能够确定表达式的值,将不再考虑第二个操作数
5、三元运算符:condition?expression1:expression2;
true expression1 ,false expression2
6、静态导入 import static java.lang.Math.*;(StrictMath性能更快)
7、强制类型转换为整数时,将通过截断小数点部分将浮点型转为整型;
int nx =(int)9.997; nx=9;
四舍五入用round,但是仍然要加(int)否则类型不变还是double
nt nx =(int)Math.round(9.997); nx=10;
8、不可使用==比较两个字符串,==比较的是两个字符串是否在同一个位置上(地址)
深层次的原因是在java中String对象是不可变字符串,不可变字符串的优点是:编译器可以让字符串共享,可以提升效率。
如果虚拟机始终将相同的字符串共享,就可以使用==比较,但实际上只有字符串常量是共享的,而+或substring等操作产生的结果并不共享,因此需要避免使用==比较。
9、StringBuilder(替代StringBuffer) 效率比StringBuffer高,但是只能单线程操作,StringBuffer效率低,但是可以多线程。
10、数组,使用旧数组拷贝(赋值=,Arrays.copyof不会)出来一个新数组,两个变量引用同一个数组
拷贝时如果目标数组大小比原来大,则数据类型为数字时,多余的默认为0,Boolean默认为false,String默认为null