编码最佳实践

  • String的替换、分割时,编译正则表达式,提升效率

  • 异常代替错误码

  • 变量的定义靠近第一次使用的地方,流程要流畅

  • NIO path paths files,使用paths进行文件路径处理。

  • Stream的内部循环,采用流式方式处理集合

  • 新的日期框架

  • try with resource

  • 代码可读性,依靠的是代码语义、意图;不知道POJO的意义,以及语义化的涵义;只是感觉Map,String好灵活好喜欢。

  • 尽管方法都短小简洁,但是代码的可读性依然不强,分析后发现是由于代码分层不清晰导致的。编码时,喜欢将需要的方法都写到一个类中,导致类混杂了很多功能,掺杂了不同的语义。应该通过抽象与分层将不同语义的功能,抽离到不同的类中。

  • 线程池使用完毕,要关闭。

  • 对象参数要加final,不要在方法内对对象的引用复制,没用的。

  • 不可变性为引用类型的值语义,提供了变通的语法支持

  • 消除重复

  • 写好注释

  • Lambda表达式本身就是一个接口的实现

  • 参数的净化和检验

  • 语法与语义要保持一致,代码与功能要保持一致

  • 类和方法的设计优先考虑泛型

  • 契约式设计,防御式编程有利于编写安全可靠的代码,入参的合法性检验,与处理前的净化

  • 站在客户的角度,审视自己的接口设计。自己设计的类对他人的影响,他人是否按照你的预想使用你的类。每个类既是服务的提供者,也是服务的享受者。

  • 将相关的数据项绑定到一个类中,便于统一管理,如复制,创建,传参数,比较。rest,ftp,email

  • 代码的位置,代码应该在哪个类中;代码的顺序,变量应该定义在靠近使用的地方,语句的顺序调整

  • lamda和函数式接口的搭配使用

  • 将多个方法的变量设置为成员变量,避免方法间传来传去。

  • 必要时合并方法和表达式。

  • 变量和类名的命名,命名要准确,多加限定词

常见的误区

  • 浮点数的精度问题
float a = 1.0f - 0.9f;
System.out.println(a); // 0.100000024
float b = 0.9f - 0.8f;
System.out.println(b); // 0.099999964

Java 中 float 和 double 都是不精确的,这是由于其在计算机中的表示是决定的

  • 注意下面两个构造函数的差异
    BigDecimal(double val) , new BigDecimal(“0.1”)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值