关于java的优化问题,是大家比较关系的一个方面,如何提高程序的性能,减少内存的开支,这对于一个程序员来说,显得尤然重要。我在网上转载了一篇关于java高级优化技术的文章,在这篇文章里,给大家讲的都是一下比较常用的技术及技巧,也是我们比较容易理解的。不过我个人认为这篇文章在日后还需要不断扩充,我会将学习中不断总结到的经验和小技巧也相应地加入到这篇文章中,先在此谢谢写这篇文章的程序员(或许不是,不过谢谢他)。
文章正文:
1.优化循环。
通过重新组织重复的子表达式来提高循环体的运行性能。 2减少使用对象的数量来提高运行性能。 3.缩减网络传输数据来缩短等待时间。 其他: 1.采用对象池技术,提高对象的利用效率。 性能的损耗主要源于创建和释放对象,因此要避免对象的创建和释放。采用对象池技术,预先定义一个对象池,预先创建一组待使用的对象: Enemy[5] enemy=new Enemy[5]; for(inti=0;i<5;i++){ enemy=new Enemy(); } 增加标志如used和reset标识Enemy的状态。需要创建对象时从对象池中获取 一个未被使用的对象并用reset方法初始化;需要释放时只需修改标志位以供下次使用即可。 2.尽可能使用基本数据类型代替对象 例如用二维数组代替一个写简单的对象。 3.优化算法 比如对于默写不要求很精细的场景和算法,用简单的算法模拟。 4.其他优化 a.如提取字符串时,试着返回子串而不是创建一个副本。 b.尽量的少创建短期的临时对象。 c.能用库函数的就不要自己创建(库函数是优化好的) d.Map map=new HashMap(); HashMap map=new HashMap();//这个性能更高,重构代码 e.增强型for循环和Iterable使用时,多了一个对象的创建,慎用。 f.避免enum类型。 g.嵌入式开发时注意浮点的运用,尽量不用。(处理器是否支持浮点)
h.图片资源压缩、多张图片集中到一张图片上(比单独的和小很多,省去了每张的头文件、结束文件等数据块,合并了调色板
|