我的Java优化规范总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的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类。例如商户入驻,只是更新一个状态,却对所有的字段进行了一次更新操作,一来存在风险,二来进行了多余的判断和操作,三增加了存储

 

 


以上是关于我的Java优化规范总结的主要内容,如果未能解决你的问题,请参考以下文章

Java虚拟机体系结构深入研究总结

Java虚拟机体系结构深入研究总结

对一套源代码的规范和风格的讨论及优化改进

分析一套源代码的代码规范和风格并讨论如何改进和优化代码

java性能优化总结

Java性能优化推荐书!大厂Java面试总结+详细解答