提高代码效率和可读性需要注意的地方
程序员文章站
2022-06-14 21:37:17
...
单线程尽量使用HashMap和ArrayList
尽量使用基本数据类型代替对象
二维数组比一维数组占用更多的内存空间,大约在10倍以上
当大量复制数据时,使用System.arraycopy()
String[] arr={"a","s","d","f"};
String[] copy=new String[arr.length];
System.arraycopy(arr, 0, copy, 0, arr.length);
for(int i=0;i<copy.length;i++){
System.out.println(copy[i]);
}
代码重构,增加代码的可读性
通过StringBuffer的构造函数来设定它的初始容量,可以明显提升性能.StringBuffer的默认容量为16,当StringBuffer容量达到最大容量时,它会将自身的容量加到当前的2倍+2,也就是2n+2.无论何时,只要StringBuffer到达它的最大容量,它就不得不创建一个新的对象数组,然后复制旧的对象数组,这会浪费很多时间,所以给StringBuffer设置一个合理的初始容量值很有必要.Vector一样,它的初始值是10,扩容加倍.
不要在循环中使用try/catch语句,try/catch应该放在循环的最外层
慎用异常,异常对性能不利,异常只能用于错误处理,不应唉用来控制程序流程,只要异常抛出,VM就会调整调用栈,因为在处理的异常的过程中创建了新对象
尽量减少对变量的重复计算 for(int i=0,len=list.size();i<len;i++){}
对象使用完毕后,手动设置null
资源使用完毕后,注意及时关闭并释放资源(数据库连接,IO流)
尽量使用局部变量,局部变量保存在栈中,数度快,静态变量,实例变量等保存在堆中,数度慢
出现字符串连接是使用StringBuffer
尽量重用对象
尽量使用final修饰
尽量使用基本数据类型代替对象
二维数组比一维数组占用更多的内存空间,大约在10倍以上
当大量复制数据时,使用System.arraycopy()
String[] arr={"a","s","d","f"};
String[] copy=new String[arr.length];
System.arraycopy(arr, 0, copy, 0, arr.length);
for(int i=0;i<copy.length;i++){
System.out.println(copy[i]);
}
代码重构,增加代码的可读性
通过StringBuffer的构造函数来设定它的初始容量,可以明显提升性能.StringBuffer的默认容量为16,当StringBuffer容量达到最大容量时,它会将自身的容量加到当前的2倍+2,也就是2n+2.无论何时,只要StringBuffer到达它的最大容量,它就不得不创建一个新的对象数组,然后复制旧的对象数组,这会浪费很多时间,所以给StringBuffer设置一个合理的初始容量值很有必要.Vector一样,它的初始值是10,扩容加倍.
不要在循环中使用try/catch语句,try/catch应该放在循环的最外层
慎用异常,异常对性能不利,异常只能用于错误处理,不应唉用来控制程序流程,只要异常抛出,VM就会调整调用栈,因为在处理的异常的过程中创建了新对象
尽量减少对变量的重复计算 for(int i=0,len=list.size();i<len;i++){}
对象使用完毕后,手动设置null
资源使用完毕后,注意及时关闭并释放资源(数据库连接,IO流)
尽量使用局部变量,局部变量保存在栈中,数度快,静态变量,实例变量等保存在堆中,数度慢
出现字符串连接是使用StringBuffer
尽量重用对象
尽量使用final修饰
上一篇: 全键盘加轨迹球 这款十年前的黑莓让我爱上了打字聊天
下一篇: 提高代码效率和可读性需要注意的地方