2024年10月12日

java.util.Arrays#sort

摘要: 基本数据类型数组 /** * java.util.Arrays#sort(int[]) * public static void sort(int[] a) { * DualPivotQuicksort.sort(a, 0, a.length - 1, null, 0, 0); // DualPiv 阅读全文

posted @ 2024-10-12 10:54 anpeiyong 阅读(8) 评论(0) 推荐(0) 编辑

java.util.Collections#sort(java.util.List<T>)

摘要: java.util.ArrayList/java.util.LinkedList /** * java.util.Collections#sort(java.util.List) * public static <T extends Comparable<? super T>> void sort( 阅读全文

posted @ 2024-10-12 10:47 anpeiyong 阅读(5) 评论(0) 推荐(0) 编辑

2024年10月8日

java.util.ComparableTimSort

摘要: 概述 ComparableTimSort 是 Java 标准库中用于排序的一个内部实现,它是 Timsort 算法的具体实现。 Timsort 是一种混合排序算法,结合了归并排序(Merge Sort)和插入排序(Insertion Sort)的优点。 它在实际应用中表现出色,特别是在处理部分有序的 阅读全文

posted @ 2024-10-08 18:26 anpeiyong 阅读(15) 评论(0) 推荐(0) 编辑

java.util.DualPivotQuicksort

摘要: 概述 DualPivotQuicksort 是 Java 7 引入的一种改进的快速排序算法,它使用两个基准(pivots)来划分数组。 这种算法在某些情况下可以提高排序效率,尤其是在数据分布不均匀的情况下。 ( 数据分布不均匀:在一组数据中,数据值的分布不是均匀或随机的,而是存在某种特定的模式或偏斜 阅读全文

posted @ 2024-10-08 17:17 anpeiyong 阅读(22) 评论(0) 推荐(0) 编辑

2024年9月27日

学习

摘要: 学习效率 从图可以看到学习方法分布两层,一种是被动学习,也是浅度学习,听讲,阅读,视听,演示都是在被动学习,而与人讨论,自己动手实践,教授给别人是主动学习。 主动学习我们称之为深度学习,如果你不能深度学习,你就不能真正学到东西。这也是你会经常有“学那么多干什么,不用就忘了”,这就是浅度学习的症状了。 阅读全文

posted @ 2024-09-27 11:17 anpeiyong 阅读(9) 评论(0) 推荐(0) 编辑

2024年9月23日

JavaSE---Fail-Fast

摘要: 总结 主要用于集合类中,以确保 在遍历集合时如果集合本身被修改,则会立即抛出ConcurrentModificationException异常。 原理 内部计数器:每个集合对象都有一个内部计数器,称为modCount(modification count)。每当集合结构被修改(比如添加或删除元素), 阅读全文

posted @ 2024-09-23 16:11 anpeiyong 阅读(6) 评论(0) 推荐(0) 编辑

2024年9月20日

ScheduledThreadPoolExecutor

摘要: 总结 继承自 ThreadPoolExecutor 并实现了 ScheduledExecutorService 接口。 提供了基于线程池的定时任务调度功能,允许你安排任务在未来某个时间点执行一次,或者周期性地重复执行。 特性 定时任务:可以安排任务在指定延迟后执行。 周期性任务:可以安排任务按照固定 阅读全文

posted @ 2024-09-20 16:53 anpeiyong 阅读(69) 评论(0) 推荐(0) 编辑

ForkJoinPool

摘要: 总结 一个特殊线程池,它专门用于执行 ForkJoinTask; 设计目的是为了更有效地处理 可以被分解成更小任务 的工作负载,这些任务可以通过递归地分叉(fork)和合并(join)来并行执行。 这种模式非常适合于分治算法,比如快速排序、矩阵乘法等。 特性 工作窃取:ForkJoinPool 使用 阅读全文

posted @ 2024-09-20 16:19 anpeiyong 阅读(228) 评论(0) 推荐(0) 编辑

ThreadPoolExecutor 与 ForkJoinPool比较

摘要: 都是 Java 并发包 java.util.concurrent 中用于执行任务的线程池,但它们的设计目的和适用场景有所不同。下面是两者之间的主要区别: 设计目标 ThreadPoolExecutor: 主要用于 处理 大量异步任务。 适用于各种类型的任务,特别是那些 独立运行且不需要相互协作的任务 阅读全文

posted @ 2024-09-20 15:39 anpeiyong 阅读(93) 评论(0) 推荐(0) 编辑

BlockingQueue---DelayQueue

摘要: 总结 一个无界阻塞队列; FIFO; 只包含实现了 Delayed 接口的元素,每个元素都有一个延迟时间,在该延迟时间结束之前,该元素不会从队列中可用。一旦元素的延迟到期,它就可以被取出了,并且取出的顺序是按照延迟到期的时间先后进行的。 通常用于实现定时任务调度、缓存过期等场景。例如,可以用来管理超 阅读全文

posted @ 2024-09-20 10:13 anpeiyong 阅读(3) 评论(0) 推荐(0) 编辑

导航