摘要:
调用静态内部类,同样是线程安全的,原理同饿汉式单例 package org.study.singleton; /** * 静态检测单例模式 * * */ public class StaticCheckSingleton { private static class LazyHolder { pri 阅读全文
摘要:
package org.study.singleton; public class DoubleCheckSingleton { private DoubleCheckSingleton(){}; private static volatile DoubleCheckSingleton instan 阅读全文
摘要:
懒汉式单例并非绝对的线程安全的,在高并发的情况下有可能被多个线程会初始化多个实例 package org.study.singleton; /** * 懒汉式单例模式 */ public class LazySingleton { private LazySingleton(){} private 阅读全文
摘要:
饿汉式单例天生的线程安全,在类初始化的时候就只初始化了一个示例 package org.study.singleton; /** * 饿汉式单例模式 天然的安全的单例模式 */ public class HungrySingleton { private HungrySingleton(){} pr 阅读全文
摘要:
希尔排序 package org.study.order; import java.util.Arrays; public class ShellSort02 { public static void main(String[] args) { int[] arr = {9, 6, 11, 3, 5 阅读全文
摘要:
归并排序 package org.study.order; import java.util.Arrays; public class MergeSort02 { public static void merge(int[] arr, int left, int mid, int right) { 阅读全文
摘要:
选择排序:典型的比较排序 package org.study.order; import java.util.Arrays; public class SelectionSort01 { public static void main(String[] args) { int[] arr = {5, 阅读全文
摘要:
快速排序:典型的比较排序 package org.study.order; import java.util.Arrays; public class QuickSort01 { public static void main(String[] args) { int[] array = {5, 2 阅读全文
摘要:
插入排序:典型的比较排序 package org.study.order; import java.util.Arrays; public class InsertionSort { public static void main(String[] args) { int[] arr = {5, 2 阅读全文
摘要:
冒泡排序:典型的比较排序 package org.study.order; import java.util.Arrays; public class BubbleSort01 { public static void main(String[] args) { int[] arr = {91, 2 阅读全文
摘要:
堆排序 先了解一些性质:1、complate binary tree,2、父节点的值大于其左、右孩子节点的值 堆排序是基于完全二叉树实现的,在将一个数组调整成一个堆的时候,关键之一的是确定最后一个非叶子节点的序号,这个序号为:n/2-1,n为数组的长度。但是为什么呢? 可以分两种情形考虑: 堆的最后 阅读全文