当前位置: 首页 > 后端技术 > Java

编写Java代码的14个好习惯,写得好...

时间:2023-04-02 00:48:49 Java

1。定义配置文件信息有时候我们会在yml配置文件中放入一些变量进行统一管理,比如使用@ConfigurationProperties代替@Value方法定义对应字段的实体@Data//指定前缀@ConfigurationProperties(prefix="developer")@ComponentpublicclassDeveloperProperty{私有字符串名称;私人字符串网站;私有字符串qq;privateStringphoneNumber;}@Data//指定前缀@ConfigurationProperties(prefix="developer")@ComponentpublicclassDeveloperProperty{privateStringname;私人字符串网站;私有字符串qq;privateStringphoneNumber;}使用@RestController@RequiredArgsConstructor时注入这个beanpublicclassPropertyController{finalDeveloperProperty;developerProperty("@MappingProperty("/property")publicObjectindex(){returndeveloperProperty.getName();}}2.将@Autowired替换为@RequiredArgsConstructor我们都知道注入bean有3种方式(设置注入,constructorinjection,annotationinjection),Spring推荐我们使用constructor来注入Bean,我们先看看前面的代码编译后是什么样子RequiredArgsConstructor:lombok提供3.代码模块化AlibaBaJava开发手册上说每个方法的代码不要超过50行(如果我没记错的话),在实际开发中,我们要善于拆分我们的接口或方法,让一个方法只处理一种逻辑,可能以后会用到某个功能,马上就可以用4.抛出异常而不是返回写业务代码的时候,往往会根据不同的结果返回不同的信息,尽量减少返回,这样会使得代码显得凌乱。Example5.减少不必要的db,尽量减少对数据库的查询。比如删除一个服务(只有下架或者不上架才能删除)。在阅读别人写的代码之前,它会先根据id查询记录,然后对反例和正例做一些判断6.不要返回null负例和正例在别处调用方法时,避免不必要的空指针7.ifelseifelseif不要用太多,可以试试策略模式代替8.减少controller业务代码业务代码尽量放在service层处理,操作简单,美观后期维护做出判断,提出合理化建议。例如:建议我们改用lanbda,点击replace10。一定要养成阅读源码的好习惯,包括GitHubstars:>1000的优秀开源项目,你会从中学到很多知识包括它的代码设计思路和高级API,面试加分(很多面试官习惯问一下源码相关的知识)11.Designpatterns23个设计模式,尽量在代码中使用设计模式思想,写出的代码既规范又美观高大上哈哈。12.拥抱新知识对于我们这种工作经验较短的程序员来说,我认为我们需要学习更多超出自身知识的知识。我们不能每天都犯贱。如果有机会,我们应该使用更难的知识。没有机会(项目比较传统),可以自己下班后多做相关的demo练习13.基本题map遍历HashMapmap=newHashMap<>();map.put("姓名","杜");for(Stringkey:map.keySet()){Stringvalue=map.get(key);}map.forEach((k,v)->{});//recommendedfor(Map.Entryentry:map.entrySet()){}可选判断是否为空//获取子目录列表publicListgetChild(Stringpid){if(V.isEmpty(pid)){pid=BasicDic.TEMPORARY_DIRECTORY_ROOT;}CatalogTreeNode节点=treeNodeMap.get(pid);返回Optional.ofNullable(node).map(CatalogueTreeNode::getChild).orElse(Collections.emptyList());}在大量数据递归时,避免在递归方法中新增对象,可以尝试将对象当做方法参数使用注解类接口方法注解传递。比较复杂的方法注解一定要写清楚。有时候写注释不是给别人看的,而是给自己看的。14.判断元素是否存在hashSet代替list,list判断元素是否存在的代码ArrayListlist=newArrayList<>();//判断a是否在list中for(inti=0;i集合=newHashSet<>();//判断a是否在集合中intindex=hash(a);returngetNode(index)!=null可见其复杂度为O1来源:https://blog.csdn.net/weixin_...近期热点文章推荐:1.1,000+Java面试题及答案(2022最新版本)2.太棒了!Java协程来了。..3.SpringBoot2.x教程,太全面了!4.不要用爆破爆满画面,试试装饰者模式,这才是优雅的方式!!5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!