千锋教育-做有情怀、有良心、有品质的IT职业教育机构

当前位置:首页 > 行业动态  >  正文

JAVA程序员必须要懂的——代码优化

时间:2017-08-03 10:50:17     来源:千锋教育杭州校区 作者:千锋

    代码优化,程序员必须懂得一门学问,简洁漂亮的代码给人的感觉就像如沐清风,一堆垃圾的代码给人的感觉就像吃了翔一样的难受。所以不管是程序员还是准程序员,养成良好的代码优化习惯都是必须要养成的。千锋JavaEE课程大纲良心出品,缔造java开发精英。Java常用于工业级应用开发,相比其他,JavaEE以专业性和强大的规范性独受企业青睐!别让别人看见你的代码时间想到的是删了从写而不是代码优化。

java.png

  首先,我们要搞清楚优化代码的目的。

  减小代码的体积;提高代码运行的效率;代码优化具体细节(只说Java的,小编就是Java程序员)。

  1.尽量指定类、方法的final修饰符。

  Java编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用重大,具体参见Java运行期优化。此举大概能2.够使性能平均提高50%。

  3.尽量重用对象特别是String对象的使用,出现字符串连接时应该使用StringBuilder/StringBuffer代替。

  4.尽可能使用局部变量。

  5.及时关闭流:进行数据库连接、I/O流操作,在使用完毕后,及时关闭以释放资源。

  6.尽量减少对变量的重复计算:明确一个概念,对方法的调用,即使方法中只有一句语句,也是有消耗的,包括创建栈帧、调用方法时保护现场、调用方法完毕时恢复现场等。

  7.尽量采用懒加载的策略,即在需要的时候才创建。

  8.慎用异常

  异常对性能不利。抛出异常首先要创建一个新的对象,Throwable接口的构造函数调用名为fillInStackTrace()的本地同步方法,fillInStackTrace()方法检查堆栈,收集调用跟踪信息。只要有异常被抛出,Java虚拟机就必须调整调用堆栈,因为在处理过程中创建了一个新的对象。异常只能用于错误处理,不应该用来控制程序流程。

  9.不要在循环中使用try…catch…,应该把其放在外层。

  10.如果能估计到待添加的内容长度,为底层以数组方式实现的集合、工具类指定初始长度。

  11.当复制大量数据时,使用System.arraycopy()命令。

  12.乘法和除法使用移位操作:移位操作虽然快,但是可能会使代码不太好理解,因此好加上相应的注释。

  13.循环内不要不断创建对象引用。

  14.基于效率和类型检查的考虑,应该尽可能使用array,无法确定数组大小时才使用ArrayList。

  15.尽量使用HashMap、ArrayList、StringBuilder,除非线程安全需要,否则不推荐使用Hashtable、Vector、StringBuffer,后三者由于使用同步机制而导致了性能开销。

  16.不要将数组声明为public static final。

  学习就像逆水行舟,学习java是这样,毕竟Java已经雄踞编程语言排行已经十几年了,但正是这十几年,也使得Java各方面的体系也比其他语言加完整和,有什么不懂的问题很容易就能到到解决。

  迭迅速的时代,JavaEE作为一个异类身处其中,从问世起便立于不败之地,除了这样描述,实在想不出好的形容词,JavaEE到处都是规范,为整个行业规范大方向,无论行业哪个环节哪个方向快速发展,都将成为JavaEE进步的助力!

相关文章

  • 北京天丰利校区(总部):北京市海淀区宝盛北里西区28号天丰利商城4层
    北京沙河校区:北京市昌平区沙阳路18号北京科技职业技术广场服务楼2层、南区服务楼2层
    咨询电话:400-654-7778 010-82790226-801
    面授课程:Android培训、HTML5培训、UI交互设计培训、PHP培训、JavaEE培训、大数据开发培
                     训、VR/AR混合现实培训、Python培训、iOS培训、好程序员
  • 深圳西部硅谷校区:深圳市宝安区宝安大道5010号深圳西部硅谷A区B座605-619
    深圳大学城校区:深圳市南山区留仙大道1201号大学城创客小镇16栋2楼、3楼
    咨询电话:0755-33582485-801(硅谷校区) 0755-86660670-801(大学城校区)
    面授课程:Android培训、HTML5培训、UI交互设计培训、PHP培训、JavaEE培训、大数据开发培
                     训、VR/AR混合现实培训
  • 上海地址:上海市宝山区同济支路199号智慧七立方3号楼2-4层
    咨询电话:400-627-7899 021-56166283/56166279
    面授课程:PHP培训、Android课程培训、HTML5课程培训、UI交互设计培训、JavaEE培训、iOS课
                     程培训、好程序员
  • 郑州地址:郑州市金水区纬五路21号河南教育综合楼(经纬中学楼)6/7/8层
    咨询电话:0371-55191750 400-654-7778
    面授课程:Android课程培训、HTML5课程培训、UI交互设计培训、JavaEE培训、iOS课程培训
  • 广州地址:广州市天河区元岗路310号智汇park创意园E座5层
    咨询电话:020-22119207 400-654-7778
    面授课程:Android课程培训、HTML5课程培训、iOS课程培训、JavaEE培训
  • 大连地址:大连市甘井子区软件园路6号B5座101室
    咨询电话:0411-39026086 400-654-7778
    面授课程:Android课程培训、HTML5课程培训、JavaEE培训、iOS课程培训
  • 武汉地址:武汉市江夏区藏龙岛杨桥湖大道15号拓创大厦15楼
    咨询电话:027-81772047
    面授课程:Android课程培训、HTML5课程培训、JavaEE培训、iOS课程培训
  • 成都旅游校区:成都市一环路西二段17号四川旅游青羊校区内
    成都华立校区:成都一环路西二段17号华立大厦3楼
    咨询电话:028-83178771 028-61967740
    面授课程:Android课程培训、HTML5课程培训、UI交互设计培训、JavaEE培训、iOS课程培训
  • 校区地址:西安市雁塔区高新六路52号立人科技C座西区4楼
    咨询电话:029-85260160 029-85261030 029-85260960
    面授课程:Android课程培训、HTML5课程培训、JavaEE培训
  • 杭州地址:浙江省杭州市江干区九堡旺田书画城A座4层
    咨询电话:0571-86893632 010-82790226-801
    面授课程:Android课程培训、HTML5课程培训、JavaEE培训、iOS课程培训
  • 青岛校区地址:青岛市市南区金坛路17号青岛职业技术南校区实训楼A4层
    咨询电话:0532-80910752/3 010-82790226-801
    面授课程:Android课程培训、HTML5课程培训、UI交互设计培训、iOS课程培训
  • 千锋动态二维码

    了解千锋动态
    关注千锋教育服务号

  • 千锋互联二维码

    扫码关注千锋互联
    身边的移动开发导师