Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 491|回复: 0

[Java基础知识]几种常见的Java不规范代码

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-9-30 17:44:14 | 显示全部楼层 |阅读模式
    一些不规范代码,我把它们整理成了一个列表出来分享给我的同行希望能引起注意并改善代码的质量和可维护性。 这个列表不区分顺序,全部来自一些代码质量检查工具,如 CheckStyle, FindBugs 和 PMD。 一、在Eclipse中格式化源代码并管理import语句    Eclipse提供了自动格式化源代码和管理import语句的功能(并移除未使用的语句)。你可以使用下面的快捷键来使用这些功能。 Ctrl + Shift + F � 格式化源代码。 Ctrl + Shift + O � 管理import语句并移除未使用的语句。
      
       
       

         
       

         
       
      
    二、避免在方法中出现多个return语句(退出点):
        在你的方法中,确保只有一个 退出点。不要在一个方法中使用多于一个return语句。
    如,下面的代码是不推荐的,因为它有多个退出点(return语句)。
    1. private boolean isEligible(int age){  
    2.    if(age > 18){  
    3.      return true;  
    4.    }else{  
    5.      return false;  
    6.   }  
    7. }
    8. 上面的代码可以这么写(当然,下面的代码还可以改进,后面再说)。
    9. private boolean isEligible(int age){  
    10.    boolean result;  
    11.    if(age > 18){  
    12.      result = true;  
    13.    }else{  
    14.      result = false;  
    15.    }  
    16.    return result;  
    17. }


    18. 三、简化if-else方法:
    19. 我们写了一些只要一个参数的工具方法,检查一些条件并根据条件返回一个值。如,在上面见到的
    20. isEligible方法。
    21. private boolean isEligible(int age){  
    22.    boolean result;  
    23.    if(age > 18){  
    24.      result = true;  
    25.    }else{  
    26.      result = false;  
    27.    }  
    28.   return result;  
    29. }
    30. 可以只使用一个return语句来重写此方法。
    31. private boolean isEligible(int age){  
    32.    return age > 18;  
    33. }
    复制代码
    四、不要为Boolean,Integer或String创建新的实例:
        避免创建新的Boolean,Integer,String等实例。使用Boolean.valueOf(true)代替new Boolean(true)。两种写法效果差不多但却可以改善性能。

    五、 在代码块周围使用大括号:
       永远不要忘记在块类型语句(如:if,for,while)周围使用大括号。这可以减少代码歧义并且避免在你修改代码块的时候产生新的bug。
    不推荐
    if(age > 18)
        return true;
    else
        return false;

    推荐
    if(age > 18){
        return true;
    }else{
        return false;
    }

    六、 把方法的参数声明为final类型:
       总是在所有兼容的地方把把方法的参数声明为final。这样做的话,当你无意中修改了参数的值,编译时会得到警告,并且编译生成的字节码也会得到优化。
    推荐
    private boolean isEligible(final int age){ ... }

    七、 用大写命名public static final类型成员变量:
        总是使用大写命名用public static final类型变量。这样可以让你很容易区分常量和本地变量。
    不推荐
    public static final String testAccountNo = "12345678";
    推荐
    public static final String TEST_ACCOUNT_NO = "1234
    1. 八、把多个if语句合并成一个:
    2. 下面的代码
    3. if(age > 18){  
    4.    if( voted == false){  
    5.      // eligible to vote.  
    6.    }  
    7. }
    8. 可以使用一个if语句改写为:
    9. if(age > 18 && !voted){  
    10.    // eligible to vote  
    11. }
    12. 九、别忘了给switch添加default语句:
    13. 总是给switch添加一个default语句。
    14. 十、避免重复使用同样的字符串,创建一个常量吧:
    15. 如果你需要在多个地方使用同一个字符串,那就创建一个字符串常量来使用吧。
    16. 下面的代码:
    17. private void someMethod(){  
    18.    logger.log("My Application" + e);  
    19.    ....  
    20.    ....  
    21.    logger.log("My Application" + f);  
    22. }
    23. 可以创建一个常量代替字符串"My Application":
    24. public static final String MY_APP = "My Application";  
    25. private void someMethod(){  
    26.    logger.log(MY_APP + e);  
    27.    ....  
    28.    ....  
    29.    logger.log(MY_APP + f);  
    30. }
    复制代码



      
      
       
       

         
       

         
       
      
    复制代码
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-20 16:41 , Processed in 0.360891 second(s), 34 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表