为了账号安全,请及时绑定邮箱和手机立即绑定

我的Java优化、规范总结

标签:
Java

代码篇

1. 循环尤其注意,循环体内定义变、常量...都是错误的

 

2. 多重if判断可使用map替代!!!

 

3. 避免使用else语句,替代方案:卫语句、状态模式or策略模式!!!

 

4. for循环中嵌套if判断,可以使用算子替代。实现可扩展性和维护性,省去循环

 

5. 项目中尽可能多得使用commons工具类

 

6. 参数多写JavaBean来封装

 

7. 常量根据业务来划分,代码中尽量直接出现常数

 

8. 只对非稳定的代码捕捉异常,异常从小到大依次捕捉,分别处理

 

9. 多写注释,建议每块业务代码都加注释!!!(读书得写笔记,写文章得打草稿),项目中缺少必要的注释,简洁有力的注释有助于开发的效率和他人的阅读!!!

 

10. 重复代码的问题,抽取!!!能复制就坚决不黏贴,重复代码会导致后期的改动量加大,容易遗漏;重复代码很关键,质量尤为重要。项目中出现了大量重复代码!!!

 

11. 集合初始化时,尽量指定集合初始化的大小,减少消耗

 

12. 对于明确不使用的代码建议直接清除,或者加todo及时清除,避免出现垃圾

 

13. Final可以提高程序的相应效率

 

14. StringBuilder替代String

 

13.23中设计模式对应了不同的场景,建议项目中的业务从设计模式的角度出发,增加代码的维护性和可扩展性\

 

15. Redis,mq的使用

 


数据库

1. 建表规范  

表名字段名的规范

存储的字符串几乎相等,使用char

字段和注释永远保持一致

小数类型为decimal

合适的字符存储长度(节省表空间) tinyint  smallint  int 和bigint的选择

字段和注释永远保持一致  

长度基本不变的字符串,使用char定长字符串类型

 

2.sql优化

对于一成不变的表,可以在相关表增加冗余字段,减少关联查询,提高性能

Sql语句全部大写,减少解析成本

任何较长的sql语句的都存在优化的空间,要尽可能的对较长的sql语句进行优化

 

 

3.索引

没有唯一索引-------脏数据、效率低下

区分度最高的和等号放在最左边

利用延迟关联或者子查询优化多分页场景

SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 LIMIT 100000,20 ) b where a.id=b.id

多表关联的时候被关联的字段需要有索引      

索引长度与区分度一对矛盾体,需要建立合理的索引长度

使用搜索引擎来替代模糊查询,这个国网貌似正在做

使用覆盖索引来进行查询操作,避免回表操作,提高效率。应用:查询指定列数据的时候!!!

Order by最后是组合索引的一部分,索引的有序性一定需要注意

Sq建立索引的目标达到ref级别

...

 

 

4.Mybatis

1. 不使用*作为查询的字段列表,减少解析,避免不一致

select j.* from shop_store_joinin

2. 不要写一个大而全的数据更新接口,传入POJO类。例如商户入驻,只是更新一个状态,却对所有的字段进行了一次更新操作,一来存在风险,二来进行了多余的判断和操作,三增加了存储

 

 


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消