线程安全的Java单例模式实现
Java单例模式是“Gangs of Four”提出的设计模式之一,属于创建型设计模式。这种模式限制类的实例化,确保在Java虚拟机中只存在一个类的实例。单例模式看起来简单,但在实现时却需要考虑很多因素。 下文是对线程安全…
Java单例模式是“Gangs of Four”提出的设计模式之一,属于创建型设计模式。这种模式限制类的实例化,确保在Java虚拟机中只存在一个类的实例。单例模式看起来简单,但在实现时却需要考虑很多因素。 下文是对线程安全…
1. 同步容器类的问题 在Java中,同步容器主要包括2类: Vector、Stack、HashTable Collections类中提供的静态工厂方法创建的类 这些类通过对每个公有方法都进行同步来实现线程安全。同步容器类是线程安全的,但在某…
前言 在构建高性能应用程序和系统时,选择适当的缓存策略是至关重要的。数据库和缓存之间的关系直接影响系统的性能、可伸缩性和稳定性。下面讨论几种常见的缓存策略,探讨它们的特点以及在实际应用中的优劣之处。 …
堆是什么? 一个堆是一个存储在数组中的二叉树,它不使用父/子指针。堆是根据”堆属性”对节点的顺序进行排序的。 堆的常见用途包括: 构建优先队列。 支持堆排序。 快速计算集合中的最小(或最大)元素。 堆的属性 …
参考 维基百科 Leetcode 1. 什么是快速排序? 快速排序,又称分区交换排序,是一种排序算法。在平均状况下,排序n个项目要 O(n×log n)次比较。在最坏情况下则需要O(n²)次比较,这种状况并不常见。 快速排序使用分…