课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
代码规范化是提高代码质量的一个非常常见的优化方法,而今天我们就通过案例分析来了解一下,代码规范化都有哪些要求。
一、MyBatis不要为了多个查询条件而写1=1
当遇到多个查询条件,使用where1=1可以很方便的解决我们的问题,但是这样很可能会造成非常大的性能损失,因为添加了“where1=1”的过滤条件之后,数据库系统就无法使用索引等查询优化策略,数据库系统将会被迫对每行数据进行扫描(即全表扫描)以比较此行是否满足过滤条件,当表中的数据量较大时查询速度会非常慢;此外,还会存在SQL注入的风险。
二、迭代entrySet()获取Map的key和value
当循环中只需要获取Map的主键key时,迭代keySet()是正确的;但是,当需要主键key和取值value时,迭代entrySet()才是更高效的做法,其比先迭代keySet()后再去通过get取值性能更佳。
三、使用Collection.isEmpty()检测空
使用Collection.size()来检测是否为空在逻辑上没有问题,但是使用Collection.isEmpty()使得代码更易读,并且可以获得更好的性能;除此之外,任何Collection.isEmpty()实现的时间复杂度都是O(1),不需要多次循环遍历,但是某些通过Collection.size()方法实现的时间复杂度可能是O(n)
四、初始化集合时尽量指定其大小
尽量在初始化时指定集合的大小,能有效减少集合的扩容次数,因为集合每次扩容的时间复杂度很可能时O(n),耗费时间和性能。
五、使用StringBuilder拼接字符串
一般的字符串拼接在编译期Java会对其进行优化,但是在循环中字符串的拼接Java编译期无法执行优化,所以需要使用StringBuilder进行替换。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解