1.通常使用: ,但是这样写更简洁:
2. public static Integer valueOf(int i)返回一个表示指定的 int 值的 Integer 实例。如果不需要新的 Integer 实例,则通常应优先使用该方法,而不是构造方法 Integer(int),因为该方法有可能通过缓存经常请求的值而显著提高空间和时间性能。
3. "const".eqauls(variable)代替 variable.eqauls("const") ,比如"123".equals();
避免null point exception
4. 在连接字符串的时候尽量避免使用String = "str"+"str2" + "str3";
而使用StringBuffer str = new StringBuffer("str");str.append("str2"); str.append("str3");代替
5. 多使用PreparedStatement代替Statement这样可以避免在拼接字符串的时候出现
"select * from tablename where col = '"+col+"'"单引号过多的情况,并且效率更高
6. 重复利用对象:要花很长的时间来新建一个对象(根据前表总结的时间,对象的新建时间是赋值时间的980倍,而新建一个小数组的时间是赋值时间的3100倍)。因此,最明智的做法是保存和更新老对象的字段,而不是创建一个新对象。例如,不要在自己的paint()方法中新建一个Font对象。相反,应将其声明成实例对象,再初始化一次。在这以后,可在paint()里需要的时候随时进行更新。参见Bentley编著的《编程拾贝》,p.81[15]。
7.使用API类:尽量使用来自Java API的类,因为它们本身已针对机器的性能进行了优化。这是用Java难于达到的。比如在复制任意长度的一个数组时,arraryCopy()比使用循环的速度快得多。
8. 同步:在JDK解释器中,调用同步方法通常会比调用不同步方法慢10倍。经JIT编译器处理后,这一性能上的差距提升到50到100倍(注意前表总结的时间显示出要慢97倍)。所以要尽可能避免使用同步方法——若不能避免,方法的同步也要比代码块的同步稍快一些。
9. 将重复的常数计算移至关键循环之外——比如计算固定长度缓冲区的buffer.length。 (好像现在JVM可以自动优化)
10. 在拚接查询语句的时候加上"where 1=1 ",当你有很多查询条件的时候,你不知道那些个会有,哪些个没有,如果一个没有的话,是不是就不用where子句了呢?如果只有一个条件的话,是不是只要一个where子句就搞定了呢?又如果有2个以上,就需要用and来连接了。。基于上诉的情况,勤劳的程序员们想出了一个好用的办法,加个where 1=1 后面不管有多少个条件
有则加and,没有的话就什么都不用做。
11. StringBuffer是线程安全的,而StringBuilder不是,StringBuilder效率更高。
12. null==对象 代替 对象==null : 可以防止==被误写成=
13. to be continued....