
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习Java编程等互联网技术,而本文我们就通过案例分析来简单了解一下,Java编程优化线程优缺点分析。
开发过程中我们会遇到很多使用线程池的场景,例如异步短信通知,异步发邮件,异步记录操作日志,异步处理批量Excel解析。这些异步处理的场景我们都可以把它放在线程池中去完成,当然还有很多场景也都可以使用线程池,掌握线程池后开发中自己灵活应用。
例如在生成订单的时候给用户发送短信,生成订单的结果不应该被发送短信的成功与否所左右,也就是说生成订单这个主操作是不依赖于发送短信这个操作,我们就可以把发送短信这个操作置为异步操作。当然也有的小伙伴会说我使用多线程不就行了,为啥还要使用线程池,那我就先聊一下线程和线程池的优缺点。
使用线程的缺点:
1:每次newThread对象的时候,新建对象这样性能很差。
2:线程缺乏管理,有可能无限创建线程,这样可能造成系统资源的浪费或者OOM(内存溢出)。
使用线程池的优点:
1:重用存在的线程,减少线程的创建,性能良好。
2:可以有效的控制大的线程并发数,提高系统资源的利用率。
1:动态SQL遇到的坑
2:集合中移除某些无用的数据的操作。
3:字符串变量和字符串常量equals的时候将字符串常量写在前面
4:HashMap用对象作为key的时候重新equal和hashCode,如果不重写hashcode方法get的结果将为null。
注意:平常用对象判断是否相同的时候,一般也会重写这个对象的equal和hashCode的方法,一般的开发工具也都有重写这两个方法的快捷键。
5:用有效的方式来遍历map集合
如下,数据量大的时候用Iterator遍历map的效率较高
6:Oracle查询优化:
选择有效率的表名顺序:ORACLE的解析器按照从右到左顺序处理from字句中的表名,from字句中写在后的表(基础表)将先被处理,在from字句中包含多个表的情况下,必须选择记录数少的表作为基础表,如果有3个以上的表连接查询,那就需要选择交叉表作为基础表,交叉表就是那个被其他表引用的表。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。