略
1.a+=b
与a=a+b
的区别:
a+=b
自带类型转换,而a=a+b
由于有+
运算符a+b
会自动转换为int
类型.举个例子:
1 | short a = 1; |
2.&&
与&
的区别:
结果一样,但是&
两边都会执行,&&
左边为false,右边不执行;|
同理,两边都会执行,而||
左边为true,右边不执行.
对于&
和&&
,根据执行顺序,一旦左边为false,结果已经确定了为false;
对于|
和||
,根据执行顺序,一旦左边为true,结果已经确定了为true;
3.变量length
,方法size()
和方法lenght()
的区别:
4.String,StringBuilder和StringBuffer的区别:
5.countinue,break和return的区别:
1 | public static void main(String[] args) { |
- 输入continue:输出 “1 2 4 5 6 7 8 9 10 结束”
- 输入break: 输出 "1 2 结束"
- 输入return: 输出 "1 2 "
可以知道,`continue`是跳过本次循环,但是循环依然执行;`break`是跳过本次循环,并且循环也结束;`return`是整个方法提前结束.
6.使用get和set方法与使用public修饰的属性的区别
1 | public String name; |
通过方法可以给传递的参数进行分析,使程序更加灵活,可定制性更强.并且隐藏了成员变量,保证了代码的安全性.
7.代码规范-equals比较
建议使用 "test".equals(object)
来代替 防止出现空指针.object.equals("test")
8.代码规范-浮点数计算
1 | float a = 1.0f - 0.9f; |
1 | float a = 1.0f - 0.9f; |
9.代码规范-大数转换
使用构造方法 BigDecimal(double)
存在精度缺失风险, 建议使用 BigDecimal(String)
来解决 或者使用 BigDecimal.valueOf(double)
.