Java
文章平均质量分 54
Tony.Wu
这个作者很懒,什么都没留下…
展开
-
常用的线程池和使用线程池的好处
近期项目中涉及到使用多线程和线程池,但是可能不少人知道怎么用却不知道这样做的好处是什么,了解一下:1、提高资源利用率线程池可以重复利用已经创建了的线程2、提高响应速度因为当线程池中的线程没有超过线程池的最大上限时,有的线程处于等待分配任务状态,当任务到来时,无需创建线程就能被执行。3、具有可管理性线程池会根据当前系统特点对池内的线程进行优化处理,减少创建和销毁线程带来的系统开销。...原创 2018-11-01 14:05:15 · 508 阅读 · 0 评论 -
对于Java实现单例(Singleton)的一些思考
1. 什么是单例单例模式是指在java应用中,能够保证一个类只有一个对象实例,并提供一个访问该实例的全局访问点。2. 应用场景比如Windows系统的任务管理器,不管打开多少次任务管理器,只会弹出一个窗口。如果不使用单例机制,将弹出多个窗口,如果这些窗口显示的内容完全一致,则是重复对象,浪费内存资源;如果这些窗口显示的内容不一致,则意味着在某一瞬间系统有多个状态,与实际不符。还有wi...原创 2018-11-14 10:14:49 · 197 阅读 · 0 评论 -
浅析 Comparable和 Comparator的区别
简介Comparable和 Comparator都是java.util包下的两个接口,从字面上看这两个接口都是用来做比较用的,但是jdk里面不可能定义两个功能相同的接口,所以他们肯定有不同的用处。1、Comparable1.1 说明Comparable可以认为是一个内比较器,实现了Comparable接口的类有一个特点,就是这些 类是可以和自己比较的,至于具体和另一个实现了Compar...原创 2018-11-11 16:13:20 · 29053 阅读 · 25 评论 -
springboot 发送邮件
发送邮件应该是网站必备的功能之一,在没有框架之前,我们是通过Java自带的JavaMail类来发送邮件的,后来spring推出了JavaMailSender类大大简化了发送邮件的过程,再到现在的Spring Boot又对其进行封装从而出现了 spring-boot-starter-mail。使用springboot发送邮件主要分为以下几步:pom.xml 配置<dependency&...原创 2018-11-07 15:40:21 · 149 阅读 · 0 评论 -
使用Executors创建线程池的思考
最近遇到了发优惠券相关的业务,由于量大自然想到了使用多线程和线程池,但是在使用中阿里的插件出现了这样的提示“手动创建线程池,效果会更好哦。”仔细一看,它是这样说的:线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样处理的方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。Executors各个方法的弊端newFixedThrea...原创 2018-11-03 13:57:36 · 1147 阅读 · 0 评论 -
Java8系列之重新认识HashMap
Java8系列之重新认识HashMap转载 2018-11-01 15:02:55 · 163 阅读 · 0 评论 -
怎么理解无界队列和有界队列
有界队列:就是有固定大小的队列。比如设定了固定大小的 LinkedBlockingQueue,又或者大小为 0,只是在生产者和消费者中做中转用的 SynchronousQueue。无界队列:指的是没有设置固定大小的队列。这些队列的特点是可以直接入列,直到溢出。当然现实几乎不会有到这么大的容量(超过 Integer.MAX_VALUE),所以从使用者的体验上,就相当于 “无界”。比如没有设定固定大...原创 2018-11-01 14:53:11 · 22654 阅读 · 6 评论 -
队列Queue的基本操作
近期用到有关队列 Queue 的api,比如 add/offer,element/peek,remove/poll等方法,有些功能类似的地方,在选择使用时不免有所疑惑,这里简单区别一下:1、add()和offer()区别:add()和offer()都是向队列中添加一个元素。一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,调用 add() 方法就会抛出一个 unchecked 异常,...原创 2018-12-21 14:23:10 · 1735 阅读 · 0 评论