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

                                                    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:封装类成员的.(类方法和类变量的)

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

    1.26:如何正确的将数组转换为集合,不使用如Guava和Apache Commons的工具类

          ①:List list=new ArrayList<>(Arrays.asList("A","B","C");使用时候注意传递的数组必须是对象数组,而不是基本类型。

          ②:使用Java8

                 包装类型:

                Integer [] myArray1={1,2,3};

                List myList=Arrays.stream(myArray1).collect(Collectors.toList());

                基本类型:

                int [] myArray1 ={1,2,3};

                List myList=Arrays.stream(myArray2).boxed().collect(Collectors.toList());

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

         

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大道之简

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值