Java的代码质量优化的注意细节

来源:互联网 发布:关键词大数据 编辑:程序博客网 时间:2024/06/06 07:45

                                                                                                     Java的代码质量优化简单介绍

一:写在前面--->软件质量有代码质量和文档质量来共同保证的.开发人员更应该在写完程序的时候,来化时间来优化自己的代码,达到更佳的效果.

二:代码优化的具体介绍如下---->

    1.1避免使用空块:

            具体包括如下的几点;多余的分号(if条件的后面);没有任何作用的大括号;try-catch-finally语句中的finally为空的时候,如果finally语句中不做任何的处理就不要使用finally语句的.

    1.2避免使用空类:

            如果一个类没有任何的使用价值就建议删除吧.

     1.3:去除多余的import的包导入

            如果导入的包没有用到就建议删除吧,导包的时候建议不要使用import x.*的方式,使用哪个就导入哪个吧.

     1.4:剪切无效的代码

            如果程序中定义的成员变量,参数,方法,类,临时变量没有使用就直接删除吧.

     1.5:去除重复的代码

            如果多个类里面含有在相同的方法或者是代码片段就去除重复的吧.改用抽取公共的就可以实现的.

     1.6:优雅使用switch语句

           每个分支都有break的,最后那个default break也不要省略的.放到最后去.

      1.7:long型变量的定义注意细节

            long型变量紧跟其后的是大写的L,否则会造成严重的可读性差,容易误解的.

      1.8:避免一条语句中声明或者是赋值多个变量的.

            虽然写在一行比较方便的,少敲代码,但是这样就会降低程序的可读性和可测试的.写开好读,也好发现错误的.

       1.9:注意去掉控制标志的临时变量的.

            一般在单一的出口下会给程序的结果添加一个控制临时变量的.建议去掉,直接使用return跳出分支语句的.

       1.10:避免赋予临时变量的多个角色的

            一个临时变量就赋予一个角色的,不要在赋予第二个了,这样就造成可读性查了一些的.赋予临时变量的单一职责的.

       1.11:优化在for循环内使用增量因子的

           直接在for循环里使用增量因子就比较好,放在里面可能会造成一定的误操作的.

       1.12避免使用魔法数字

            系统一般会默认0和1是非魔法数字的,其他的数字就不太推荐使用了.优化的策略就是分类讨论了;当不是类型码的时候就考虑使用常量代替的,当是有限个的类型码的时候,就考虑使用枚举代替的,操作简单.当有不定个的类型码的时候,就考虑使用类代替的. 多态代替条件表达式.

       1.13: 使用BigDecimal类型进行精确的计算

        精确的计算:有加减乘除的.

                      BigDecimal b1=new BigDecimal(999.00);
                      BigDecimal b2=new BigDecimal(899.90);
                     NumberFormat nf=new DecimalFormat("#.##");
                     System.out.println(nf.format(b1.subtract(b2)));

       1.14:避免混用+号的.

       1.15:避免使用过时的API的.

        1.16:对比较臃肿的方法要记得瘦身的.(合并方法和分解方法的)

       1.17:避免创建不必要的对象的.

       1.18避免自己的特有工具类被实例化的,可以提供一个对外服务的方法的.防止自己的算法被修改的.

       1.19:接口隔离原则的优化.

            接口的粒度不要太大了,不要包含太多的方法了.按照方法的功能,分解为子接口的.新接口替代原来的接口的.

           去除继承原来臃肿的接口的没有使用的方法.

       1.20:以委托代替继承,降低耦合度的.里氏替换原则.就是子类不能覆盖父类非抽象方法.否则会造成偷梁换柱的后果的.就是子类重写方法改变了父类方法的本身的意图的.

            具有继承关系的类设计和优化的时候要注意的时:

            1:子类可以实现父类的抽象方法的;

            2:子类不能覆盖父类的非抽象方法的.

            3:子类可以增加自己独特的方法,来体现自己的特点.

       1.21:包的优化

           用于发布的包下存在重用以及不可重用的类的.保持包的清晰度的.一般继承关系或者是包含的关系的类就要放在不同的包下的.

       1.22:继承父类的方法,不可重写父类的静态方法,静态方法的入口是父类的.在Java8直接就在提示错误的.

       1.23:合理放置静态块的位置的,静态变量是在类被加载的时候就分配到了数据区的.会赋予变量默认的初始值.申请内存空间和初始化赋值是两个步骤的.

      1.24:使用string.equals("String")带来的弊端;

              "String".equals(str)会避免NULL的判断的。对比一下就非常的清楚了.

              if("Hello".equals(str)) VS if(str!=null&&str.equals("Hello")) 

    1.25:封装类成员的.(类方法和类变量的)

           一个类对外提供服务,就只对外提供一个可以调用的服务方法就可以了,只有自己如何提供的服务的业务方法就要私有化的,通俗的说就是别人家的资源不能随意使用,自己家的资源不随意开放!

        初步总结了一下,后面还有很多很多的.在不断的补充吧.

         

     

阅读全文
0 0
原创粉丝点击