欢迎光临散文网 会员登陆 & 注册

千锋教育Java入门全套视频教程(java核心技术,适合java零基础,Java

2023-07-23 23:20 作者:身份不明的青年  | 我要投稿

HashMap:

数据结构是数组+链表+红黑树(JDK1.8引入红黑树),当元素个数大于64并且链表上元素大于8转为红黑树,当链表个数大于8但是数组元素小于64,则进行数组扩容。当树中节点小于6又重新转为数组+链表。

HashMap数组容量为2的整数倍,最大容量为2<<30,为int类型中最大的2的整数倍,扩容机制为原来长度的2倍。

HashMap在存入元素时,先获取存入的key的hash值,与数组长度-1进行&运算,得到的值为在数组中的下标,得到下标后判断该位置是否有元素,有用链表链接,JDK1.7之前为头插法,JDK1.8以后为尾插法。

线程池7大参数:

核心线程,最大线程,闲置时间,时间单位,任务队列,线程工厂,拒绝策略

执行顺序:

假设任务一直提交,线程池最开始先创建核心线程执行任务,达到核心线程数后将任务放入任务队列,任务队列满载后再创建线程直到达到最大线程数,此时任务提交将触发拒绝策略,当任务全部执行完毕后,闲置时间到了后,线程池随机销毁线程直到核心线程数。

拒绝策略:

abortPolicy:直接抛出异常,终止程序

discardPolicy:丢弃新加入的任务,源码中是不对新加入的任务做任何处理

discardOldestPolicy:将任务队列中最早加入的任务丢弃,将新的任务加入到任务队列末尾

callerRunPolicy:将新的任务加入到线程中执行。

千锋教育Java入门全套视频教程(java核心技术,适合java零基础,Java的评论 (共 条)

分享到微博请遵守国家法律