被老大review代码后有以下体会:
1、常量的命名应为静态的、final的、大写的字母组成、多个单词应有下划线组成。
2、在方法体里出现的字符串常量 .getString("aaaaa"),应在对应的类开始出把其定义成 static的、final的常量。
3、一个方法里面的路径太多,即条件比较多的情况。
一种解决方法是可以抽象出N个私有的小方法。
另一解决方法是把出错或者异常的情况放前面,正常的情况放在最后面。
4、 if 和 else 及 return
如果if模块有返回(return)的话,那就没有必要再用else,用了也是多余的。
5、 把共同的代码尽量抽象成一个方法。
6、 数据库连接应由外面传进来,并且也由传进来者进行关闭,调用者不行进行关闭操作。
7、 业务层出现异常直接往上抛,在View层进行捕捉。
8。牛人改后的代码就是看起来舒服,流畅。(汗一个!)
9、 args的使用,以前对args没有多大理解,现在可以通过其获取设置在.Main中的参数
10、 命名的问题,变量和方法的命名应要和其属性所表达的意思或者要实现的功能一致
11 、 HashMap 的使用
他的使用是针对数量级为W的,不要轻易使用。他的原理是牺牲空间来换取时间的
替代方案是用List来代替,List再封装一个Bean。
12、 LinkedList 的使用,及其和ArrayList的区别
LinkedList 一般情况下,增、删的时间复杂度是O(1),而查找的时间复杂度是O(n)
ArrayList 一般情况下,增、删的时间复杂度是O(n),而查找的时间复杂度是O(1)
13、正则表达式的使用
正则表达式的使用是很重要的。特别是对[]的使用体会很深刻。
部分代码:
StringBuffer buffer = new StringBuffer();
String []aString = sql.split("[()]");
buffer.append(aString[0]);
14、字符串的操作
这次对字符串的操作比较多,对其一些方法用的也比较多如:
indexOf("a") 查找a的具体位置,并返回一个整形值。一般判断其是否存在是(!=-1)
subString() 用来截取你想要的字符串。
replaceAll("ss","") 可以把后面的参数替代前面的参数。(就是用空把字符串"ss"替换掉)
15、boolean 变量的使用
要用的恰到好出,这次的插入功能模块。
16、StringBuffer 和 String的使用上
当要拼接的数据量达到3个及以上,就应使用StringBuffer。String每拼接一次就要多创建一个对象。
17、不要存在多于代码,多余的都删掉。
以上尽是个人的体会。