1:尽量使用超级for > 普通for循环 > while
2:在对于货币等精确计算的时候,要使用int(小于9位) long(小于18位) bigdecimal (大于18位)
而不能使用double float
3:基本类型和装箱类型就行比较运算的时候,都是装箱类型自动拆箱转化为基本类型,如何此时装箱类型是null那么在拆箱的时候,就会爆出空指针异常的情况。
4:如果多少数字符串就行拼接可以使用+,如果是多个,就要使用Stringbuilder(线程不安全的)的append方法进行拼接,因为+是随着拼接数量的增加,运算时间呈平方级增加。
5:能使用接口作为引用类型,和传递参数类型的时候,进量用接口,这样便于后面程序修改替换现有的实现类,而达到修改少,可扩展性高,解耦的效果。
6:什么是本地方法,就是java虚拟机使用电脑平台的语言执行方法获取底层的资源的过程,一般情况下不建议这么调用,应该性能影响比较大,然后就是在api的不断更新迭代中,你说写的本地方法都有了对应的api。
7:什么时候用到反射,就是当我们编写代码的时候不确定要用到哪个类或者哪个类的方法,需要在运行的时候,根据传入的参数或者是其他的条件才能确定,这个时候,我们可以选择反射,动态的获取类和调用方法。
例如:传过来的参数是spring 里bean类的id值和要执行的方法名称
可以这样做:
Object targetObj = applicationContext.getBean(name);//获取目标类
Class tarClass = targetObj.getClass();
Method M= tarClass.getDeclaredMethod(methodName,方法参数的class值(数组));
M.invoke(targetObj,方法参数);获取返回值。