Java代码格式注意事项

简介: 在进行Java开发时,代码格式是非常重要的一部分,代码格式的规范有助于复用和后期的维护,以下我归纳一些Java代码格式的注意事项。

在进行Java开发时,代码格式是非常重要的一部分,代码格式的规范有助于复用和后期的维护,以下我归纳一些Java代码格式的注意事项。


1:大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果 是非空代码块则:

1) 左大括号前不换行。

2) 左大括号后换行。

3) 右大括号前换行。

4) 右大括号后还有 else 等代码则不换行 表示终止的右大括号后必须换行。


2:左小括号和字符之间不出现空格;同样,右小括号前需要空格。

反例:if (空格 a == b 空格)


3:if/for/while/switch/do 等保留字与括号之间都必须加空格。


4:任何二目、三目运算符的左右两边都需要加一个空格。运算符包括赋值运算符=、逻辑运算符&&、加减乘除符号等。


5:采用 4 个空格缩进,如果使用 tab 缩进,必须设置 1 个 tab 为 4 个空格。

正例:

public static void main(String[] args) {
  // 缩进 4 个空格 
  String say = "hello"; 
  // 运算符的左右必须有一个空格 
  int flag = 0; 
  // 关键词 if 与括号之间必须有一个空格,括号内的 f 与左括号,0 与右括号不需要空格
  if (flag == 0) { 
    System.out.println(say); 
  }
  // 左大括号前加空格且不换行;左大括号后换行 
  if (flag == 1) {
    System.out.println("world"); 
  // 右大括号前换行,右大括号后有 else,不用换行 
  } else {
    System.out.println("ok"); 
  // 在右大括号后直接结束,则必须换行 
  }
}

6:注释的双斜线与注释内容之间有且仅有一个空格。

正例:

// 这是示例注释,请注意在双斜线之后有一个空格
String ygb = new String();

7:单行字符数限制不超过 120 个,超出需要换行,换行时遵循如下原则:

1) 第二行相对第一行缩进 4 个空格,从第三行开始,不再继续缩进,参考示例。

2) 运算符与下文一起换行。

3) 方法调用的点符号与下文一起换行。

4) 方法调用中的多个参数需要换行时,在逗号后进行。

5) 在括号前不要换行,见反例。


正例:

StringBuffer sb = new StringBuffer(); 
// 超过 120 个字符的情况下,换行缩进 4 个空格,点号和方法名称一起换行
sb.append("zi").append("xin")...
  .append("huang")... 
  .append("huang")... 
  .append("huang");

反例:

StringBuffer sb = new StringBuffer(); 
// 超过 120 个字符的情况下,不要在括号前换行 
sb.append("zi").append("xin")...append 
  ("huang");
// 参数很多的方法调用可能超过 120 个字符,不要在逗号前换行 
method(args1, args2, args3, ...
, argsX);

8:方法参数在定义和传入时,多个参数逗号后边必须加空格。

正例:下例中实参的 args1,后边必须要有一个空格。

method(args1, args2, args3);


9:IDE 的 text file encoding 设置为 UTF-8; IDE 中文件的换行符使用 Unix 格式,

不要使用 Windows 格式。


10:单个方法的总行数不超过 80 行。包括方法签名、结束右大括号、方法内代码、注释、空行、回车及任何不可见字行数不超过 80 行。代码逻辑分清红花和绿叶,个性和共性,绿叶逻辑单独出来成为额外方法,使主干代码 更加清晰;共性逻辑抽取成为共性方法,便于复用和维护。


11:没有必要增加若干空格来使某一行的字符与上一行对应位置的字符对齐。


12:不同逻辑、不同语义、不同业务的代码之间插入一个空行分隔开来以提升可读性。



相关文章
|
14天前
|
Java
在 Java 中捕获和处理自定义异常的代码示例
本文提供了一个 Java 代码示例,展示了如何捕获和处理自定义异常。通过创建自定义异常类并使用 try-catch 语句,可以更灵活地处理程序中的错误情况。
|
29天前
|
XML 安全 Java
Java反射机制:解锁代码的无限可能
Java 反射(Reflection)是Java 的特征之一,它允许程序在运行时动态地访问和操作类的信息,包括类的属性、方法和构造函数。 反射机制能够使程序具备更大的灵活性和扩展性
39 5
Java反射机制:解锁代码的无限可能
|
25天前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
60 3
|
1月前
|
存储 安全 Java
系统安全架构的深度解析与实践:Java代码实现
【11月更文挑战第1天】系统安全架构是保护信息系统免受各种威胁和攻击的关键。作为系统架构师,设计一套完善的系统安全架构不仅需要对各种安全威胁有深入理解,还需要熟练掌握各种安全技术和工具。
84 10
|
26天前
|
分布式计算 Java MaxCompute
ODPS MR节点跑graph连通分量计算代码报错java heap space如何解决
任务启动命令:jar -resources odps-graph-connect-family-2.0-SNAPSHOT.jar -classpath ./odps-graph-connect-family-2.0-SNAPSHOT.jar ConnectFamily 若是设置参数该如何设置
|
24天前
|
Java
Java代码解释++i和i++的五个主要区别
本文介绍了前缀递增(++i)和后缀递增(i++)的区别。两者在独立语句中无差异,但在赋值表达式中,i++ 返回原值,++i 返回新值;在复杂表达式中计算顺序不同;在循环中虽结果相同但使用方式有别。最后通过 `Counter` 类模拟了两者的内部实现原理。
Java代码解释++i和i++的五个主要区别
|
2月前
|
搜索推荐 Java 数据库连接
Java|在 IDEA 里自动生成 MyBatis 模板代码
基于 MyBatis 开发的项目,新增数据库表以后,总是需要编写对应的 Entity、Mapper 和 Service 等等 Class 的代码,这些都是重复的工作,我们可以想一些办法来自动生成这些代码。
33 6
|
2月前
|
Java
通过Java代码解释成员变量(实例变量)和局部变量的区别
本文通过一个Java示例,详细解释了成员变量(实例变量)和局部变量的区别。成员变量属于类的一部分,每个对象有独立的副本;局部变量则在方法或代码块内部声明,作用范围仅限于此。示例代码展示了如何在类中声明和使用这两种变量。
|
2月前
|
存储 Java API
优雅地使用Java Map,通过掌握其高级特性和技巧,让代码更简洁。
【10月更文挑战第19天】本文介绍了如何优雅地使用Java Map,通过掌握其高级特性和技巧,让代码更简洁。内容包括Map的初始化、使用Stream API处理Map、利用merge方法、使用ComputeIfAbsent和ComputeIfPresent,以及Map的默认方法。这些技巧不仅提高了代码的可读性和维护性,还提升了开发效率。
61 3
|
2月前
|
JSON Java 开发工具
Java服务端集成Google FCM推送的注意事项和实际经验
本文分享了作者在公司APP海外发布过程中,选择Google FCM进行消息推送的集成经验。文章详细解析了Java集成FCM推送的多种实现方式,包括HTTP请求和SDK集成,并指出了通知栏消息和透传消息的区别与应用场景。同时,作者还探讨了Firebase项目的创建、配置和服务端集成的注意事项,帮助读者解决文档混乱和选择困难的问题。
59 1