欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java那些事

程序员文章站 2022-07-05 08:25:33
...
JAVA编程中尽量要做到的一些地方
1.尽量使用StringBuilder和StringBuffer进行字符串连接

2.单线程应尽量使用HashMap,ArrayList HashTable, vector等使用了同步机制,降低了性能.

3.尽量减少对变量的重复计算
Eg: for(int i = 0; i<list.size(); i++) 应该改为: for(int i = 0; len = list.size(); i<len; i++)

4.尽量使用移位来代替"a/b, a*b"的操作
"/"是一个代价很高的操作.使用移位的操作将会更快和更有效
Eg: int num =a/4; int num = a/8;
       int num =a*4; int num = a*8;
应该改为:int num = a>>2; int num = a>>3;
                int num = a<<2; int num = a<<3;

5.尽量确定StringBuffer的容器
StringBuffer的构造器会创建一个默认大小(通常是16)的字符数组,在使用中,如果超出这个大小,就会重新分配内存,创建一个更大的数组,
并将原先的数组复制过来,在丢弃旧的数组.在大多数情况下,你可以在创建StringBuffer的时候指定大小,这样就避免了哎容量不够的时候自动增长,以提高性能.

6.尽量避免使用二维数组.

7.尽量避免使用split
除非是必须的,否则应该避免使用Split, Split由于支持正则表达式,所以效率比较低,如果是频繁的几十,百万级的调用会消耗大量资源,如果确实需要频繁的调用Split,
可以考虑使用aoache的StringUtils.split(string,char),

8.ArrayList & LinkedList
一个线性表,一个是链表,
一句话,随机查询尽量使用ArrayList,ArrayList优于LinkedList,LinkedList还要移动指针.
              添加删除的操作LinkedList优于ArrayList,ArrayList还要移动数据,(理论性分析)

9.尽量使用System.arraycopy()代替通过来循环复制数组
System.arraycopy()要比通过循环来复制数组快的多

10.数字转换成字符串
String.valueOf(set.size())

11.捕获所有的异常
catch(NoResultException)

12.忽略所有异常
catch(Exception e) {
	throw new MyRuntimeException(" Could not do stuff because: " +e.getMessage, e);}

13.异常传播
try{} catch(ParseException e) {
				throw new RuntimeException(e.getMessage(), e)
			}


14.捕获不可能出现的异常
catch(SomeException e) {    
			throw new IllegalStateException(e.getMessage(), e); 
			}

Code Review(代码评审)
  • 1.测试代码不需要提交
  • 2.特殊字符都提取为常量
  • 3.只使用for循环能满足需求
  • 4.参数使用前需要判断参数是否为空的情况
  • 5.要求平均每5行代码有一行注释,注释只要写到站在阅读者的角度能看懂就行
  • 6.非空判断使用StringUtil,或者非空的值放在equals前面
  • 7.直接使用TopReviewerDO
  • 8.变量取有意义的名字,去掉不需要的引用
  • 9.如果在if里用了return,则不需要使用else
  • 10.提高性能,只进行一次SQL查询
  • 11.其高代码性能.实例化对象之前,先判断数据是否存在
  • 12.增加方法和类的注释
  • 13.可能空指针
  • 14.空指针错误
  • 15.重构一个方法