-
尽量使用单例
-
合理使用静态变量,常用才使用,减少使用
-
多使用final,如getter/setter
-
尽量不要在循环中创建对象(使用基本数据类型或者数组来代替),不要过多创建对象,不要在循环中使用try/catch
-
尽量使用局部变量,局部变量存在栈中,比存在堆中的变量实例等速度都要快(但是规范要求尽量不要有局部变量,适当就行)
-
基本类型和包装类型一样,基本数据类型在栈中,包装类型在堆中,合理使用吧,能用基本类型就用基本类型,不行就用包装类型
-
synchronized 尽量不用,用的话范围尽量小
-
尽量不要使用finalize
-
未发生线程安全前提下尽量使用HashMap、ArrayList、StringBuilder,减少使用HashTable、Vector、StringBuffer等
-
合理使用HashMap,给出最佳大小,尽量避免扩容,其他类似(如StringBuffer)
-
尽量减少重复计算,如list.size在循环中可以提前算好,然后再在循环中使用
扫描二维码关注公众号,回复: 9692691 查看本文章 -
尽量减少不必要的对象创建
-
资源要及时关闭
-
尽量使用位运算来代替逻辑运算,在条件判断中尽量用boolean
-
尽早释放无用对象引用
-
用一维数组代替二维数组
-
尽量避免使用split,如果要用,可以使用apache的StringUtils.split(string, char),频繁的split可以缓存结果
-
合理使用ArrayList或LinkedList
-
尽量使用System.arraycopy()来代替复制数组
-
尽量缓存经常用的对象,重用对象
-
尽量避免非常大的内存分配
-
尽量减少异常使用
-
创建对象可以合理使用clone()
Java性能优化笔记
猜你喜欢
转载自blog.csdn.net/weixin_43871678/article/details/104195465
今日推荐
周排行