尽量减少对变量的重复计算

for(int i=0;i<list.size();i++)

应该改为

for(int i=0,len=list.size();i<len;i++)

并且在循环中应该避免使用复杂的表达式,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。

尽量使用移位来代替'a/b'的操作

"/"是一个代价很高的操作,使用移位的操作将会更快和更有效

int num = a / 4;

int num = a / 8;

应该改为

int num = a >> 2;

int num = a >> 3;

但注意的是使用移位应添加注释,因为移位操作不直观,比较难理解

尽量使用移位来代替'a*b'的操作

同样的,对于'*'操作,使用移位的操作将会更快和更有效

int num = a * 4;

int num = a * 8;

应该改为

int num = a << 2;

int num = a << 3;

 

尽量确定StringBuffer的容量

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

如:StringBuffer buffer = new StringBuffer(1000); 

尽量早释放无用对象的引用

大部分时,方法局部引用变量所引用的对象 会随着方法结束而变成垃圾,因此,大部分时候程序无需将局部,引用变量显式设为null。

例如:

  1. Public void test(){ 
  2. Object obj = new Object(); 
  3. ……  
  4. Obj=null; 
  5. }  

上面这个就没必要了,随着方法test()的执行完成,程序中obj引用变量的作用域就结束了。但是如果是改成下面:

  1. Public void test(){ 
  2. Object obj = new Object(); 
  3. ……  
  4. Obj=null; 
  5. //执行耗时,耗内存操作;或调用耗时,耗内存的方法 
  6. ……  
  7. }  

这时候就有必要将obj赋值为null,可以尽早的释放对Object对象的引用。

尽量避免使用二维数组

二维数据占用的内存空间比一维数组多得多,大概10倍以上。

最新文章

  1. css 实现三角形 实现过程
  2. 判断Sql Server2008中ntext不为空
  3. 2016/10/28 很久没更了 leetcode解题 3sum问题进阶版4sum
  4. Sql Server 常用操作2
  5. XPath提取xml文档数据
  6. es5.0 head插件安装
  7. VS2013 解决方案文件结构分析
  8. js中this的四种调用模式
  9. 小甲鱼PE详解之基址重定位详解(PE详解10)
  10. tagName和nodeName的区别
  11. linux下利用backtrace追踪函数调用堆栈以及定位段错误
  12. javaScript增加样式规则(新增样式)
  13. 下的生产环境was重新启动不同意,怎么做?
  14. redux-form的学习笔记二--实现表单的同步验证
  15. kafak集群安装-转
  16. [Micropython]TPYBoard v10x拼插编程实验 点亮心形点阵
  17. [solution]JZOJ-5838 旅游路线
  18. JBoss应用服务器清理缓存
  19. android Gui系统之SurfaceFlinger(1)---SurfaceFlinger概论【转】
  20. Ajax增删改查-----------增

热门文章

  1. Windows中进程的内存结构
  2. sqlplus部署
  3. _OBJC_CLASS_$_ errors 错误解决办法
  4. Linq to sql 操作
  5. [Django] Windows 下安装 配置Pinax 工程
  6. Jdt Javax
  7. USB 3.1 Type-C
  8. [C#]6.0新特性浅谈
  9. node.js介绍
  10. Java书籍推荐