一些小细节让你的Java程序性能大幅提高
来源:互联网 发布:淘宝api查询商品 编辑:程序博客网 时间:2024/05/22 02:04
1、尽量给类、方法添加final修饰符。java编译器会寻找机会内联所有的final方法,能提升效率。
2、尽量重用对象。拼接字符串时应该使用StringBuilder/StringBuffer。
3、尽可能使用局部变量,局部变量在栈中生成,速度快;其他成员变量、静态变量在堆中,随着方法结束,局部变量就没了,不需要做垃圾回收。
4、及时关闭流。
5、尽量减少对变量的重复计算。如for循环中的s.length()。
6、尽量采用懒加载的策略,即在需要的时候才创建。
7、慎用异常,抛出异常后,Java虚拟机必须调整堆栈。
8、不要再循环中使用try...catch,把它放在循环外层。
9、若能估计待添加对象集合的长度,为底层以数组方式实现的集合和工具类指定初始长度。
10、当复制大量数据的数组时,使用System.arraycopy()命令。
11、在做乘法和除法时使用二进制移位操作。
12、循环内不要不断创建对象的引用,在循环外声明好引用。
13、基于效率和检查的考虑,应该尽可能使用array,无法确定数组大小时才使用ArrayList。
14、在确保线程安全的情况下,尽量使用HashMap、ArrayList、StringBuilder,在线程不安全的情况下才用HashTable、Vector、StringBuffer(开销较大)。
15、不要将数组声明为public static final,这样只让引用不可变,而无法保证数组内元素不可改变。
16、尽量在合适的场合使用单例。
17、尽量避免随意使用静态变量。(static变量通常不会被gc回收这个对象所占用的堆内存)
18、及时清除不再需要的会话。(如服务器都有默认的会话超时时间为30分钟)
19、实现RandomAccess接口的集合比如ArrayList,应当使用最普通for循环而不是foreach循环来遍历。(实现RandomAccess接口用来表明其支持快速随机访问)
20、使用同步代码块代替同步方法,避免对那些不需要进行同步的代码也进行了同步,影响了代码执行效率。
21、将常量声明为static final, 并以大写命名。
22、不要创建一些不使用的对象,比如一些中间临时对象,能省略就省略。
23、程序运行过程中少使用反射,虽然功能强大,但是效率不高,尤其是Method的invoke方法。
24、使用数据库连接池和线程池,两个池是重用对象,前者可以避免频繁的打开和关闭连接,后者可以避免频繁地创建和销毁线程。
25、使用带缓冲的输入输出流进行IO操作。(BufferedReader....)
26、顺序插入和随机访问较多的场景使用ArrayList,元素删除和中间插入较多的场景使用LinkedList。、
27、不要让public方法中有太多的形参,使用面向对象思想,可以传入JavaBean。
28、字符串变量和字符串常量在使用equals比较的时候将字符串常量写在前面。
29、不要对数组使用toString()方法。
30、不要对超出范围的基本数据类型做向下强制转型。
31、共用的集合类中不使用过的数据要及时remove。
32、把一个基本数据类型转为字符串:直接使用toString()方法最快、String.valueOf()次之,底层也是使用Integer.toString()方法,i+" "底层使用了StringBuilder实现,最慢。
33、使用最有效率的方式去遍历Map。
34、对资源的close建议分开操作,不在同一个try中执行,防止在一次close中抛出异常,未执行后面的close操作。
- 一些小细节让你的Java程序性能大幅提高
- java 性能优化:35 个小细节,让你提升 java 代码的运行效率
- JAVA性能优化:35个小细节让你提升java代码的运行效率
- java 性能优化:35 个小细节,让你提升 java 代码的运行效率
- 提高你的PHP编程效率需要注意的一些小细节
- 提高java性能的26个细节
- 注意一些小细节会让你的PHP运行效率更高
- [总结]提高程序性能的一些方法
- Java 7的性能有大幅提高,垃圾收集器的效率更高,占用内存更少!
- Java 字符串处理的一些小细节
- Java 字符串处理的一些小细节
- 一些Java编程上的小细节
- “悄悄”让你变笨的9个小细节
- 代码中的小细节,让你感叹自己的强大
- 提升IBatis的性能的一些小细节
- 让Java代码跑得更快,提高程序性能
- 优化数据库的三板斧 大幅提高Oracle性能
- 几个简单的步骤大幅提高Oracle性能
- 美团点评2016研发题目-[编程题-美团] 字符编码
- HDU
- ACM模板 字符串
- 利用Python网络爬虫抓取豆瓣首页图片代码分享
- POJ 魔兽世界之一:备战 题解
- 一些小细节让你的Java程序性能大幅提高
- acm省赛题--J company
- 基础控件4_1 View的基本事件
- HDU 1874畅通工程续
- [Scala]Scala学习笔记一 基础
- 设计模式(14) 策略模式(简单入门 行为模式)
- PAT 乙级 1030. 完美数列(25)
- HDU 2577 How to Type (dp,思维)
- Apache 的下载及安装