当我们有业务需求的时候,需要判断当前时间是否为节假日有3种方式 Jsoup 爬虫爬取 (万年日历查询 或者 360日历 百度日历) 自己维护一套日历数据表(成本较高) 调用开...
@[toc] 1. 什么是布隆过滤器 布隆过滤器(Bloom Filter)是一个叫做Bloom 于1970年提出的。我们可以把它看做由二进制向量(或者说位数组)和一系列随机...
暴力枚举法 欧几里得算法 更相减损术
概念: 计数排序不是一个比较排序算法,该算法于1954年由 Harold H. Seward提出,通过计数将时间复杂度降到了O(N),利用数组下标来缺的元素的正确位置 案例:...
1. 什么是堆 堆的本质上是一种完全二叉树,它分为两个类型 最大堆: 最大堆的任何一个父节点的值,都大于或等于它左、右孩子节点的值 最小堆: 最小堆的任何一个父节点的值,都小...
概述 说起垃圾收集器 (Garbage Collection,下文简称GC),Java 内存区域的各个部分,其中 程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而...
放入队列,直接返回成功,队列 特点 先进先出
支付宝是如何处理热点账户高并发转账问题的前言:方案设计前提 一般账务系统对账户的冲扣需要满足以下两点 1:更新账户表中的账户余额。 2:记录账户明细表中的账户更新前余额,账户更新后余额,操作金额。 其中对账户表中的...
前言:方案设计前提 一般账务系统对账户的冲扣需要满足以下两点 1:更新账户表中的账户余额。 2:记录账户明细表中的账户更新前余额,账户更新后余额,操作金额。 其中对账户表中的...
简介 同冒泡排序一样,快速排序也属于交换排序,通过元素之间的比较和 交换位置来达到排序的目的。 不同的是,冒泡排序在每一轮中只把1个元素冒泡到数列的一端,而快速排序则在每...
简介 鸡尾酒排序是冒泡排序的一种,又称为来回排序。它比冒泡排序要高级点, 冒泡排序的每一个元素都可以像小气泡一样,根据自身大小,一点一点地向着数组的一侧移动。算法的每一轮都是...
简介 冒泡排序是一种非常主流的排序算法,冒泡排序的英文(Bubble sort),它是一种基础的交换排序。 原理 : 比较两个相邻的元素,将值大的元素交换至右端。 思想:...
@[TOC] 一 概述 Java 与 C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里 面的人却想出来。 对于从事 C、C++程序开发的...
@[TOC] 1. AQS介绍 AQS 的全程为 (AbstractQueuedSynchronizer)这个类在 java.util.concurrent.locks ...
@[TOC] Atomic 原子类 1. 原子类介绍 不可分割的 一个操作是不可中断的,即使多线程的情况下也可以保证, 即使是在多个线程一起执行的时候,一个操作一旦开始,就不...
@[toc] 一、什么是线程池 线程池就是创建若干个可执行的线程放入一个池(容器)中,有任务需要处理时,会提交到线程池中的任务队列,处理完之后线程并不会被销毁,而是仍然在线程...
@[TOC] 介绍 ThreadLocal,作者: Josh Bloch and Doug Lea ThreadLocal提高一个线程的局部变量,访问某个线程拥有自己局...
@[toc] 简介 HashMap 主要用来存放键值对,它基于哈希表的 Map 接口实现,是常用的 Java 集合之一。 JDK1.8 之前 HashMap 由 数组+链表 ...
@[TOC] 简介 LinkedList是基于链表实现的,从UML图可以看出是一个双向链表。除了当做链表使用外,它也可以被当作堆栈、队列或双端队列进行操作。不是线程安全的,继...
@[TOC] 导语 在日常工作中,我们都需要遵守一定的规范,比如签到大卡、审批流程等,这些规范虽然有一定等约束感觉,却是非常有必要等,这样可以保证正确性和严谨性,但有些情况下...