Java开发手册之控制语句

Java开发手册之控制语句Java开发手册之控制语句

大家好,又见面了,我是你们的朋友全栈君。

  1. 【强制】在一个switch块内,每个case要么通过break/return等来终止,要么注释说明程序将继续执行到哪一个case为止;在一个switch块内,都必须包含一个default语句并且放在最后,即使它什么代码也没有。
  2. 【强制】在if/else/for/while/do语句中必须使用大括号。即使只有一行代码,避免采用
    单行的编码方式:if (condition) statements;
  3. 【推荐】表达异常的分支时,少用if-else方式,这种方式可以改写成:
if (condition) {              ...    
         return obj;    
}   
// 接着写else的业务逻辑代码;  说明:如果非得使用if()...else if()...else...方式表达逻辑,【强制】避免后续代码维护困难,请勿超过3层。  

正例:超过3层的 if-else 的逻辑判断代码可以使用卫语句、策略模式、状态模式等来实现,其中卫语句示例如下:

public void today() {     if (isBusy()) { 
 	 	System.out.println(“change time.”); 
        return; 
    }  
    if (isFree()) { 
 	System.out.println(“go to travel.”); 	         return; 
    } 
 
System.out.println(“stay at home to learn Alibaba Java Coding Guidelines.”);     return; 
} 
  1. 【推荐】除常用方法(如 getXxx/isXxx)等外,不要在条件判断中执行其它复杂的语句,将复
    杂逻辑判断的结果赋值给一个有意义的布尔变量名,以提高可读性。
    说明:很多 if 语句内的逻辑相当复杂,阅读者需要分析条件表达式的最终结果,才能明确什么样的条件执行什么样的语句,那么,如果阅读者分析逻辑表达式错误呢?
    正例
// 伪代码如下 
final boolean existed = (file.open(fileName, "w") != null) && (...) || (...); if (existed) { 
    ... 
}   
反例: 
if ((file.open(fileName, "w") != null) && (...) || (...)) { 
    ... 
} 
  1. 【推荐】循环体中的语句要考量性能,以下操作尽量移至循环体外处理,如定义对象、变量、
    获取数据库连接,进行不必要的try-catch操作(这个try-catch是否可以移至循环体外)。
  2. 【推荐】接口入参保护,这种场景常见的是用于做批量操作的接口。
  3. 【参考】下列情形,需要进行参数校验:
    1) 调用频次低的方法。
    2) 执行时间开销很大的方法。此情形中,参数校验时间几乎可以忽略不计,但如果因为参数错误导致中间执行回退,或者错误,那得不偿失。
    3) 需要极高稳定性和可用性的方法。
    4) 对外提供的开放接口,不管是RPC/API/HTTP接口。
    5) 敏感权限入口。
  4. 【参考】下列情形,不需要进行参数校验:
    1) 极有可能被循环调用的方法。但在方法说明里必须注明外部参数检查要求。
    2) 底层调用频度比较高的方法。毕竟是像纯净水过滤的最后一道,参数错误不太可能到底层才会暴露问题。一般DAO层与Service层都在同一个应用中,部署在同一台服务器中,所以DAO的参数校验,可以省略。
    3) 被声明成private只会被自己代码所调用的方法,如果能够确定调用方法的代码传入参数已经做过检查或者肯定不会有问题,此时可以不校验参数。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106532.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于图像特征提取

     网上发现一篇不错的文章,是关于图像特征提取的,给自己做的项目有点类似,发出来供大家参考。      特征提取是计算机视觉和图像处理中的一个概念。它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域。特征的定义       至今为止特征没有万能和精确的定义。特征的精确定义往往

    2022年4月9日
    38
  • html5 sexteen,Teen Sex on the Rise in Guangzhou

    html5 sexteen,Teen Sex on the Rise in GuangzhouSexamongmiddleschoolstudentsmaybecontributingtogrowingsterilityproblemsamongyoungwomeninGuangzhou,thecapitalofsouthChina’sGuangdongProvince,saysaprominentlocaldoctor.Puppy…

    2022年5月10日
    37
  • 三星note3怎样刷原生Android,三星note三可以刷原生android系统吗?

    三星note3怎样刷原生Android,三星note三可以刷原生android系统吗?可以的。1刷之前要备份好个人的通讯录等资料。如果你的手机使用正常就不用去刷了。自己刷也是可以的,但要到网上下载手机软件,三星的网上版本多,有些是专为水货编写的。2刷机最好在风险可控前提下的刷机。当前DIY的版本都是基于原版的,只不过是将原来的图片替换成另外的图片,将原来的铃声替换成另外的铃声,没有动核心部分。只是替换更改了部分图片、铃声或者菜单字符等,所以不应该有不良影响,按步骤操作,刷机是基本上…

    2022年6月19日
    37
  • 2021最新Java面经系列整理,持续更新「建议收藏」

    2021最新Java面经系列整理,持续更新。。。欢迎大家关注收藏,一起加油O(∩_∩)O哈~2021最新Java面经系列 系列 内容 地址 框架篇 2021最新Java面经整理|框架篇(一)Spring框架 https://blog.csdn.net/shipfei_csdn/article/details/109530018 2021最新Java面经整理|框架篇(二)SpringMVC框架 https://blog.csdn.net/..

    2022年4月18日
    48
  • strstr()函数的使用说明(C语言)

    strstr()函数的使用说明(C语言)头文件<string.h>函数作用:1、strstr()函数搜索一个字符串在另一个字符串中的第一次出现。2、找到所搜索的字符串,则该函数返回第一次匹配的字符串的地址;3、如果未找到所搜索的字符串,则返回NULL。函数原型:char*strstr(char*str1,constchar*str2);//返回值为字符型指针str1:被查找目标…

    2022年10月15日
    0
  • 二进制/十六进制转浮点数的编程(互转类似)

    转换的程序:应用:原理就是复制内存数据再以不同的数据类型来解释。推荐:http://www.cnblogs.com/roucheng/p/cpp11.html

    2021年12月24日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号