趁着周末,写下一篇文章,写到这都不知道怎么去说了,写文章确实很考验一个人,想说的不能都写在网络上,以免误导别人。
刚在网上搜索图片,也没有找到一个免费的无水印的网站,就在自己的相册找了一张图片,有什么好的图片网站,欢迎推荐哈,好了,进入正题,我们今天谈下java中需要了解的性能优化。
性能优化:如何优化?为什么需要优化?值不值得优化?这是我们需要思考的几点。
优化的目的是为了让程序运行的效率更高,减少程序代码占用整个项目的体积,说到这,项目的代码尽可能重用已有的函数,方法。
尽量重用对象,特别是String对象的使用,出现字符串连接时应该使用StringBuilder/StringBuffer代替。
因为对象的创建和销毁都要借助于虚拟机来实现,由于java虚拟机不仅要花时间来生成对象,当生成的对象不再使用时,以后可能还需要花时间对这些对象进行垃圾回收和处理,因此,生成过多的对象将会给程序的性能带来很大的影响。
尽可能使用局部变量,调用方法时传递的参数,以及在调用中创建的临时变量都保存在栈中速度较快。
相比较于在堆中开辟内存空间,速度快,其它变量,如静态变量,实例变量等都在堆中创建,速度较慢,另外,栈中创建的变量,随着方法的运行结束,这些内容就没了,不需要额外的垃圾回收,不涉及到GC操作而已,栈中分配就是快。
java编程过程中,进行数据库连接,文件流操作I/O流操作时要及时关闭对应的连接,在使用完毕后,及时关闭以释放资源。
这里的资源对应数据库连接就是会话,对应于文件操作就是文件句柄,因为对这些大对象的操作会造成系统大的开销,稍有不慎,将会导致严重的后果;建议尽量使用池化技术,现在相应的解决方法已普遍存在了。
尽量减少对变量的重复计算,明确一个概念,对方法的调用,即使方法中只有一条语句,也是有消耗的,包括创建栈帧,调用方式时保护线程,调用方法完毕时恢复现场等。
好了,我想分享的内容就到这里结束了