当前位置: 首页 > news >正文

Java开发规范补缺

2025-8-5
命名风格:

命名不能以下划线、美元符起止,(公司的项目在添加检查后会报错导致直接启动不了,强!大!)

类名使用UpperCamelCase风格,只有在DTO\VO\UID等情形中例外,例如:HtmlDTO、XmlVO(这里我平时可能会写HTMLDto这种的样式)

避免子父类的成员变量之间、同一个方法的不同代码块之间使用相同命名的变量,减少混淆

在命名变量时,表示类型的名词放在词尾,例如选择使用startTime,避免使用startedAt

pojo是vo、dto、do的总称,禁止命名为xxPojo

 

常量定义:

在使用long或者Long赋值时,避免使用l,使用L防止l和1的混淆

换行时,遵循运算符与下文一起换行、不要在括号前换行,方法内多个参数换行应在逗号后进行

不同语义、逻辑、业务等情况下,只需要插入一个回车分割即可

 

OOP规范:

所有覆写方法都需要使用@Override注解,防止覆盖失败

接口过时时使用@Deprecated表示废弃方法

尽量使用"constant".equals(object),因为object.equals("constant")容易抛出空指针异常

货币金额单位应以最小单位存储,避免使用浮点数。浮点数的引用类型不能使用equals判断相等

使用BigDecimal定义值,来进行浮点数的运行。但是注意定义的时候用string或者valueOf,直接使用BigDemical(double)依旧会导致精度缺失的问题

数据库中的类型对应:bigint对应Long

关于基本数据类型和引用数据类型:pojo中必须都使用引用数据类型,RPC的返回值和参数都要使用引用数据类型,推荐在局部变量中使用基本数据类型

定义pojo类时,不要设定默认值

pojo类中不要同时出现isXXX和getXXX,因为框架在调用提取时不能确定哪一个方法优先调用

 

日期时间:

日期格式化时,yyyy表示当前年;而YYYY表示当前周的所属年份,即当前周如果跨年,那么YYYY会属于下一年,因此推荐使用yyyy

日期格式化时,大写M表示月份,小写m表示分钟,24小时制为大H,12小时制为小h

 

集合处理:

使用isEmpty判空,而非size==0,因为前者性能更好。但是在实践中我发现还是应该用hutool中CollUtil的isEmpty,这个不但能判size=0,还能判null;此外string可以使用commons中的StringUtils的isBlank,这个可以判断null、""、"  "

在stream流中的toMap方法转为集合时,如果value为null会报NPE

使用map的entrySet等方法返回集合后,不能再在循环里添加对象

http://www.sczhlp.com/news/6312/

相关文章:

  • C++ 容器的核心特性
  • 今天分享生活日记 - Engineer
  • 20250805 之所思 - 人生如梦
  • nginx一些细枝末节的路由匹配原则
  • ABC417题解
  • C++ 古法调试:使用 assert 宏
  • 美团
  • ubuntu扩盘,根目录/为例。 - try
  • 指针练习试题
  • 【从零开始实现stm32无刷电机FOC】尝试代码阅读
  • 暑假周总结3
  • 【自学嵌入式:51单片机】AD模数转换/DA数模转换(含SPI通信)
  • 2025.8.5 -「图论」
  • 暑假周总结2
  • 20250805-40
  • 1768. 交替合并字符串
  • 浏览器插件过度分享隐私问题剖析
  • 混合递归架构实现推理速度翻倍的技术解析
  • C++ RAII详解
  • RabbitMQ 网络分区
  • 深入解析:java设计模式 -【策略模式】
  • 20250805
  • OI 笑传 #6
  • 搜索旋转排序数组
  • 若依框架创建表结构异常
  • Koala 开源项目常见问题解决方案
  • 记得保存
  • 408-OS之多处理机
  • 百度Comate的AI编程工具小试
  • windows防火墙配置以及网络服务开放排查