Java程序性能优化(一)
来源:互联网 发布:编程类似游戏 编辑:程序博客网 时间:2024/06/16 08:09
======================================================
注:本文源代码点此下载
======================================================
二十、确定 stringbuffer的容量
stringbuffer的构造器会创建一个默认大小(通常是16)的字符数组。在使用中,如果超出这个大小,就会重新分配内存,创建一个更大的数组,并将原先的数组复制过来,再丢弃旧的数组。在大多数情况下,你可以在创建stringbuffer的时候指定大小,这样就避免了在容量不够的时候自动增长,以提高性能。
例子:
1 public class rsbc {
2void method () {
3stringbuffer buffer = new stringbuffer(); // violation
4buffer.append ("hello");
5}
6 }
更正:
为stringbuffer提供初始大小。
1 public class rsbc {
2void method () {
3stringbuffer buffer = new stringbuffer(max);
4buffer.append ("hello");
5}
6private final int max = 100;
7 }
二十一、尽可能的使用栈变量
如果一个变量需要经常访问,那么你就需要考虑这个变量的作用域了。static? local?还是实例变量?访问静态变量和实例变量将会比访问局部变量多耗费2-3个时钟周期。
例子:
1 public class usv {
2void getsum (int[] values) {
3for (int i=0; i4_sum += value[i];// violation.
5}
6}
7void getsum2 (int[] values) {
8for (int i=0; i9_staticsum += value[i];
10}
11}
12private int _sum;
13private static int _staticsum;
14 }
更正:
如果可能,请使用局部变量作为你经常访问的变量。
你可以按下面的方法来修改getsum()方法:
1 void getsum (int[] values) {
2int sum = _sum;// temporary local variable.
3for (int i=0; i 4sum += value[i];
5}
6_sum = sum;
7 }
二十二、不要总是使用取反操作符(!)
取反操作符(!)降低程序的可读性,所以不要总是使用。
例子:
1 public class dun {
2boolean method (boolean a, boolean b) {
3if (!a)
4return !a;
5else
6return !b;
7}
8 }
更正:
如果可能不要使用取反操作符(!)
二十三、与一个接口 进行instanceof操作
基于接口的设计通常是件好事,因为它允许有不同的实现,而又保持灵活。只要可能,对一个对象进行instanceof操作,以判断它是否某一接口要比是否某一个类要快。
例子:
1 public class insof {
2private void method (object o) {
3if (o instanceof interfacebase) { }// better
4if (o instanceof classbase) { }// worse.
5}
6 }
7
8 class classbase {}
9 interface interfacebase {}
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
- Java程序性能优化(一)
- Java程序性能优化 !
- Java程序性能优化
- Java程序性能优化 !
- Java程序性能优化
- Java程序性能优化
- java程序性能优化
- Java程序性能优化
- Java程序性能优化
- Java程序性能优化
- Java程序性能优化
- Java程序性能优化
- Java程序性能优化
- Java程序性能优化
- Java程序性能优化
- Java程序性能优化
- java程序性能优化
- java程序性能优化
- java面试题
- Java中Split函数的用法技巧
- JasonNET
- java--FilenameFilter文件过滤器
- [专题] Ajax三种数据格式的读取实例
- Java程序性能优化(一)
- 【转】 勾子---delphi
- 【转】Ext.Ajax.request 与formPanel.getForm().submit() success的区别
- jquery ajax()
- Delphi7程序调用C#写的DLL解决办法
- Delphi与汇编
- 使用jQuery Html() 作为客户端htmlEncode的问题
- 本周ASP.NET英文技术文章推荐[09/23 - 09/29]:IIS 7.0、Facebook.NET、ASP.NET AJAX、ModalPopupExtender、扩展方法、LinqDataS
- JavaScript的世界从来没有像现在这样精彩