A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© itgaga 中级黑马   /  2016-4-4 10:06  /  456 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


今天在网上看到了一篇文章,关于JAVA代码效率优化,作为程序员,我觉得有必要了解这方面的内容,不仅仅是提高代码效率,也是涨知识。文章比较长,我简单的总结了一下,有兴趣可以百度搜一下。黑马的孩子们,加油!

1、 尽量指定类的final修饰符 带有final修饰符的类是不可派生的。
       ava编译器会寻找机会内联(inline)所有的 final方法(这和具体的编译器实现有关)。此举能够使性能平均提高50%
2、 尽量重用对象。
       特别是String 对象的使用中,出现字符串连接情况时应用StringBuffer 代替。由于系统不仅要花时间生成对象,以后可能还需花时间对这些对象进行垃圾回收和处理。因此,生成过多的对象将会给程序的性能带来很大的影响。
3 尽量使用局部变量,调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较快
       其他变量,如静态变量、实例变量等,都在堆(Heap)中创建,速度较慢。另外,依赖于具体的编译器/JVM,局部变量还可能得到进一步优化。  
4、 不要重复初始化变量
        默认情况下,调用类的构造函数时, Java会把变量初始化成确定的值:所有的对象被设置成null,整数变量(byteshortintlong)设置成0floatdouble变量设置成0.0,逻辑值设置成false。当一个类从另一个类派生时,这一点尤其应该注意,因为用new关键词创建一个对象时,构造函数链 中的所有构造函数都会被自动调用。
5、 在JAVA + ORACLE 的应用系统开发中java中内嵌的SQL语句尽量使用大写的形式,以减轻ORACLE解析器的解析负担。
6I/O操作中需要及时释放资源
       Java 编程过程中,进行数据库连接、I/O流操作时务必小心,在使用完毕后,即使关闭以释放资源。
7 保证过期对象的及时回收
由于JVM的有其自身的GC机制,不需要程序开发者的过多考虑,从一定程度上减轻了开发者负担,但同时也遗漏了隐患,过分的创建对象会消耗系统的大量内 存,严重时会导致内存泄露,因此,保证过期对象的及时回收具有重要意义。
JVM回收垃圾的条件是:对象不在被引用;然而,JVMGC并非十分的机智,即使对象满足了垃圾回收的条件也不一定会被立即回收。所以,建议我们在对象使用完毕,应手动置成null
8StringBuffer 的使用:
StringBuffer表示了可变的、可写的字符串。
有三个构造方法 :
StringBuffer (); //默认分配16个字符的空间
StringBuffer (int size); //分配size个字符的空间
StringBuffer (String str); //分配16个字符+str.length()个字符空间
你可以通过StringBuffer的构造函数来设定它的初始化容量,这样可以明显地提升性能。
祝黑马的孩子们,学习进步!




2 个回复

倒序浏览
感谢分享
回复 使用道具 举报
hua2319 来自手机 中级黑马 2016-4-4 12:28:38
藤椅
长知识了,谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马