JAVA后端开发规范

6) 修改的方法用 update 做前缀。

如果你想要学习Java的话,我给你分享一些Java的学习资料,你不用浪费时间到处搜了,从Java入门到精通的资料我都给你整理好了,这些资料都是我做Java这几年整理的Java最新学习路线,Java笔试题,Java面试题,Java零基础到精通视频课程,Java开发工具,Java练手项目,Java电子书,Java学习笔记,PDF文档教程,Java程序员面经,Java求职简历模板等,这些资料对你接下来学习Java一定会带来非常大的帮助,每个Java初学者都必备,请你进我的**Java技术qq交流群**自行下载,所有资料都在群文件里,进去要跟大家多交流学习哦。

二、变量定义


  1. 【推荐】不要使用一个常量类维护所有常量,按常量功能进行归类,分开维护。 说明:大而全的常量类,非得使用查找功能才能定位到修改的常量,不利于理解和维护。

正例:缓存相关常量放在类 CacheConsts 下;系统配置相关常量放在类 ConfigConsts 下。

三、代码格式


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

1) 左大括号前不换行。

2) 左大括号后换行。

3) 右大括号前换行。

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

  1. 【强制】 左小括号和字符之间不出现空格;同样,右小括号和字符之间也不出现空格。

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

  1. 【强制】if/for/while/switch/do 等保留字与括号之间都必须加空格。

  2. 【强制】任何二目、三目运算符的左右两边都需要加一个空格。

说明:运算符包括赋值运算符=、逻辑运算符&&、加减乘除符号等。

  1. 【强制】采用 4 个空格缩进,禁止使用 tab 字符。

说明:Vue工程采用2个空格缩进

  1. 【强制】注释的双斜线与注释内容之间有且仅有一个空格。

正例:// 注释内容,注意在//和注释内容之间有一个空格。

  1. 【强制】方法参数在定义和传入时,多个参数逗号后边必须加空格。

正例:下例中实参的"a",后边必须要有一个空格。method(“a”, “b”, “c”);

  1. 【强制】IDE 的 text file encoding 设置为 UTF-8; IDE 中文件的换行符使用 Unix 格式,不要使用 Windows 格式。

  2. 【推荐】方法体内的执行语句组、变量的定义语句组、不同的业务逻辑之间或者不同的语义之间插入一个空行。相同业务逻辑和语义之间不需要插入空行。

说明:没有必要插入多个空行进行隔开。

如果你想要学习Java的话,我给你分享一些Java的学习资料,你不用浪费时间到处搜了,从Java入门到精通的资料我都给你整理好了,这些资料都是我做Java这几年整理的Java最新学习路线,Java笔试题,Java面试题,Java零基础到精通视频课程,Java开发工具,Java练手项目,Java电子书,Java学习笔记,PDF文档教程,Java程序员面经,Java求职简历模板等,这些资料对你接下来学习Java一定会带来非常大的帮助,每个Java初学者都必备,请你进我的**Java技术qq交流群**自行下载,所有资料都在群文件里,进去要跟大家多交流学习哦。

四、OOP规约


  1. 【强制】所有的覆写方法,必须加@Override 注解。

  2. 【强制】不能使用过时的类或方法。

  3. 【强制】Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。

正例:“test”.equals(object);

反例:object.equals(“test”);

  1. 【强制】所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。

说明:对于 Integer var = ? 在-128 至 127 范围内的赋值,Integer 对象是在IntegerCache.cache 产生,会复用已有对象,这个区间内的 Integer 值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑, 推荐使用 equals 方法进行判断。

  1. 【强制】RPC 方法的返回值和参数必须使用包装数据类型。

  2. 【强制】构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,请放在 init 方法中。

  3. 【推荐】当一个类有多个构造方法,或者多个同名方法,这些方法应该按顺序放置在一起, 便于阅读。

  4. 【推荐】循环体内,字符串的连接方式,使用 StringBuilder 的 append 方法进行扩展。 说明:反编译出的字节码文件显示每次循环都会 new 出一个 StringBuilder 对象,然后进行 append 操作,最后通过 toString 方法返回 String 对象,造成内存资源浪费。

反例:

String str = “start”;

for (int i = 0; i < 100; i++) {

str = str + “hello”;

}

复制代码

  1. 【推荐】慎用 Object 的 clone 方法来拷贝对象。 说明:对象的 clone 方法默认是浅拷贝,若想实现深拷贝需要重写 clone 方法实现属性对象 的拷贝。

五、集合处理


  1. 【强制】使用集合转数组的方法,必须使用集合的 toArray(T[] array),传入的是类型完全一样的数组,大小就是 list.size()。

说明:使用 toArray 带参方法,入参分配的数组空间不够大时,toArray 方法内部将重新分配 内存空间,并返回新数组地址;如果数组元素大于实际所需,下标为[ list.size() ]的数组 元素将被置为 null,其它数组元素保持原值,因此最好将方法入参数组大小定义与集合元素 个数一致。 正例:

List list = new ArrayList(2);

list.add(“guan”);

list.add(“bao”);

String[] array = new String[list.size()];

array = list.toArray(array);

复制代码

反例:直接使用 toArray 无参方法存在问题,此方法返回值只能是 Object[]类,若强转其它 类型数组将出现 ClassCastException 错误。

  1. 【强制】不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator方式,如果并发操作,需要对 Iterator 对象加锁。

正例:

Iterator iterator = list.iterator();

while (iterator.hasNext()) {

String item = iterator.next();

if (删除元素的条件) {

iterator.remove();

}

}

复制代码

反例:

List list = new ArrayList();

list.add(“1”);

list.add(“2”);

for (String item : list) {

if (“1”.equals(item)) {

list.remove(item);

}

}

复制代码

  1. 【推荐】使用 entrySet 遍历 Map 类集合 KV,而不是 keySet 方式进行遍历。

六、控制语句


  1. 【强制】在一个 switch 块内,每个 case 要么通过 break/return 等来终止,要么注释说明程序将继续执行到哪一个 case 为止;在一个 switch 块内,都必须包含一个 default 语句并且 放在最后,即使它什么代码也没有。

  2. 【强制】在 if/else/for/while/do 语句中必须使用大括号。即使只有一行代码,避 单行的编码方式:if (condition) statements;

  3. 【推荐】除常用方法(如 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. 【参考】下列情形,需要进行参数校验:

1) 调用频次低的方法。

2) 执行时间开销很大的方法。此情形中,参数校验时间几乎可以忽略不计,但如果因为参 数错误导致中间执行回退,或者错误,那得不偿失。

3) 需要极高稳定性和可用性的方法。

4) 对外提供的开放接口,不管是 RPC/API/HTTP 接口。 5) 敏感权限入口。

七、注释规约


  1. 【强制】类、类属性、类方法的注释必须使用 Javadoc 规范,使用/**内容*/ 格式,不得使用 // xxx 方式。

  2. 【强制】所有的抽象方法(包括接口中的方法)必须要用 Javadoc 注释、除了返回值、参数、 异常说明外,还必须指出该方法做什么事情,实现什么功能。 说明:对子类的实现要求,或者调用注意事项,请一并说明。

  3. 【强制】所有的类都必须添加创建者和创建日期。

  4. 【强制】方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释 使用/* */注释,注意与代码对齐。

  5. 【强制】所有的枚举类型字段必须要有注释,说明每个数据项的用途。

  6. 【推荐】代码修改的同时,注释也要进行相应的修改,尤其是参数、返回值、异常、核心逻辑 等的修改。 说明:代码与注释更新不同步,就像路网与导航软件更新不同步一样,如果导航软件严重滞后, 就失去了导航的意义。

  7. 【参考】谨慎注释掉代码。在上方详细说明,而不是简单地注释掉。如果无用,则删除。

  8. 【参考】对于注释的要求:第一、能够准确反应设计思想和代码逻辑;第二、能够描述业务含 义,使别的程序员能够迅速了解到代码背后的信息。完全没有注释的大段代码对于阅读者形同 天书,注释是给自己看的,即使隔很长时间,也能清晰理解当时的思路;注释也是给继任者看 的,使其能够快速接替自己的工作。

  9. 【参考】好的命名、代码结构是自解释的,注释力求精简准确、表达到位。避免出现注释的 一个极端:过多过滥的注释,代码的逻辑一旦修改,修改注释是相当大的负担。

  10. 【参考】特殊注释标记,请注明标记人与标记时间。注意及时处理这些标记,通过标记扫描, 经常清理此类标记。线上故障有时候就是来源于这些标记处的代码。

1) 待办事宜(TODO):( 标记人,标记时间,[预计处理时间]) 表示需要实现,但目前还未实现的功能。这实际上是一个 Javadoc 的标签,目前的 Javadoc 还没有实现,但已经被广泛使用。只能应用于类,接口和方法(因为它是一个 Javadoc 标签)。

2) 错误,不能工作(FIXME):(标记人,标记时间,[预计处理时间]) 在注释中用 FIXME 标记某代码是错误的,而且不能工作,需要及时纠正的情况。

八、其他


  1. 【强制】在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度。 说明:不要在方法体内定义:Pattern pattern = Pattern.compile(规则);

  2. 【强制】注意 Math.random() 这个方法返回是 double 类型,注意取值的范围 0≤x<1(能够 取到零值,注意除零异常),如果想获取整数类型的随机数,不要将 x 放大 10 的若干倍然后 取整,直接使用 Random 对象的 nextInt 或者 nextLong 方法。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后总结我的面试经验

2021年的金三银四一眨眼就到了,对于很多人来说是跳槽的好机会,大厂面试远没有我们想的那么困难,摆好心态,做好准备,你也可以的。

另外,面试中遇到不会的问题不妨尝试讲讲自己的思路,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。

BAT面试经验

实战系列:Spring全家桶+Redis等

其他相关的电子书:源码+调优

面试真题:


《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。

[外链图片转存中…(img-16gzl2CK-1712121466948)]

BAT面试经验

实战系列:Spring全家桶+Redis等

[外链图片转存中…(img-ZPEEn6XQ-1712121466949)]

其他相关的电子书:源码+调优

[外链图片转存中…(img-o6dV0nEs-1712121466949)]

面试真题:

[外链图片转存中…(img-uUve2hI8-1712121466949)]

[外链图片转存中…(img-utTKRSHH-1712121466949)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 20
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 大厂java后端开发规范包括以下几个方面: 1. 代码规范:大厂在java后端开发中非常重视代码规范,包括命名规范、注释规范、代码风格等。合理的命名、清晰的注释以及统一的代码风格可以提高代码的可读性和可维护性。 2. 项目结构:大厂通常会要求有清晰、合理的项目结构,包括分模块、分层等。每个模块的功能要明确,便于团队合作开发和维护。 3. 运行环境:大厂一般会规定开发环境、测试环境和生产环境的配置。开发环境需要包括所需的IDE、数据库、版本控制等,测试环境的配置要与生产环境尽量一致,保证测试的有效性。 4. 数据库设计:在数据库设计上,需要规范表的命名、字段的命名以及数据类型的选择。合理的数据库设计可以提高查询性能和数据存储的效率。 5. 接口设计:对于大型后端项目,接口的设计尤为关键。接口需要规范输入输出参数、返回结果的格式、错误码等方面,以提供给前端或其他系统使用。 6. 测试规范:大厂通常会要求进行单元测试、集成测试和性能测试等。测试代码的编写规范同样重要,可以保证代码的质量和功能的正确性。 7. 代码管理:大厂一般会使用版本控制工具对代码进行管理,如Git。规范的代码提交、分支管理以及代码合并流程可以保证团队协作的顺利进行。 以上是大厂java后端开发规范的几个方面,通过遵循这些规范,可以提高代码的质量和开发效率,同时也有利于团队协作和项目的维护。 ### 回答2: 大厂Java后端开发规范是指在大型软件开发公司或互联网公司中,Java后端开发人员遵循的一定规范和标准,以保证团队合作效率、代码质量和系统可维护性。以下是一些常见的大厂Java后端开发规范: 1. 代码规范:采用统一的命名规范,如驼峰命名法,避免使用拼音或缩写等不规范命名方式。代码格式应统一,使用约定俗成的缩进、空格、注释等规范,提高代码的可读性。 2. 设计模式:遵循常见的设计模式,如单例模式、工厂模式、观察者模式等,提高代码的可重用性和可扩展性,降低耦合度。 3. 异常处理:合理处理异常,使用try-catch块捕获异常并进行适当的处理,避免异常影响系统的稳定性和可用性。 4. 数据库操作:使用数据库连接池进行数据库连接,避免频繁地创建和关闭连接。使用预编译语句或者ORM框架进行数据库操作,提高数据库访问性能。 5. 日志记录:使用统一的日志框架,如log4j、slf4j等,记录关键操作和异常信息,方便系统的排查和定位问题。 6. 并发控制:合理使用线程池和锁机制,控制并发访问,保证数据的正确性和系统的性能。 7. 测试规范:编写良好的单元测试和集成测试,覆盖核心代码。使用相关的测试框架和工具,如JUnit、Mockito等,提高测试效率和代码质量。 8. 安全规范:对用户输入进行合理的校验和过滤,避免安全漏洞。对重要信息进行加密传输,保证数据的安全性。 以上是大厂Java后端开发常见的规范,遵循这些规范可以提高代码的质量和可维护性,提高团队协作效率,保证整个系统的稳定性和可用性。 ### 回答3: 大厂 java 后端开发规范可以从以下几个方面进行描述。 1. 代码风格规范:大厂 java 后端开发规范会要求遵循统一的代码风格,包括代码缩进、命名规范、注释规范等。这样可以提高代码的可读性和可维护性。 2. 设计模式规范:大厂 java 后端开发规范会强调使用设计模式来解决常见的设计问题,例如单例模式、工厂模式、代理模式等。这样可以提高代码的可扩展性和灵活性。 3. 异常处理规范:大厂 java 后端开发规范会明确规定如何处理异常,包括捕获异常、处理异常和抛出异常等。这样可以提高系统的稳定性和可靠性。 4. 数据库访问规范:大厂 java 后端开发规范会规定如何进行数据库的访问,包括使用什么类型的数据库连接池、如何编写 SQL 语句等。这样可以提高数据库操作的效率和安全性。 5. 接口设计规范:大厂 java 后端开发规范会要求清晰定义接口的输入和输出,遵循 RESTful 设计原则,使用合适的 HTTP 方法和状态码等。这样可以提高接口的可用性和易用性。 6. 性能优化规范:大厂 java 后端开发规范会指导如何进行性能优化,包括数据库查询优化、缓存设计和使用合适的并发控制等。这样可以提高系统的响应速度和并发能力。 7. 安全规范:大厂 java 后端开发规范会强调安全性,包括防止 SQL 注入、XSS 攻击、CSRF 攻击等。这样可以提高系统的安全性和抵御恶意攻击的能力。 总之,大厂 java 后端开发规范旨在提高团队协作效率、代码质量和系统性能,保证软件项目的高效开发和稳定运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值