注:本文内容会有部分涉及上节的硬件知识:【Java并发学习二】多线程编程的硬件基础知识总结 1. 内存屏障 上一节讲过,为了解决写缓冲器和无效化队列带来的有序性和可见性问题,...
注:本文内容会有部分涉及上节的硬件知识:【Java并发学习二】多线程编程的硬件基础知识总结 1. 内存屏障 上一节讲过,为了解决写缓冲器和无效化队列带来的有序性和可见性问题,...
name: AbstractQueuedSynchronizertitle: 一行一行源码分析清楚AbstractQueuedSynchronizerdate: 2021-0...
MySQL不熟悉知识点 一、基础部分 insert操作insert into 表名(字段1,字段2) values(值1,值2); update操作update 表名 set...
IP(网络层) Ⅰ、IP基本认识 实现主机与主机之间的通信,即点对点通信 网络层与数据链路层比较: MAC 的作用则是实现「直连」的两个设备之间通信,而 IP 则负责在「没有...
图解HTTP Ⅰ 概述 1、HTTP概念 Web 使用一种名为 HTTP(HyperText Transfer Protocol,超文本传输协议 )的协议作为规范,完成从客户...
双指针算法 双指针包括快慢指针和左右指针。快慢指针一般用来对链表进行操作,比如判断链表是否有环、寻找中间结点或者倒数某个结点等等;而左右指针一般是对数组进行操...
区间问题 Ⅰ 解题框架 所谓区间问题,就是线段问题,让你合并所有线段、找出线段的交集等等。主要有两个技巧: 1、排序。常见的排序方法就是按照区间...
二分查找 Ⅰ 解题框架 分析二分查找的一个技巧是:不要出现 else,而是把所有情况用 else if 写清楚,这样可以清楚地展现所有细节。其中 ... 标记...
广度优先搜索(BFS) Ⅰ 解题套路 BFS 的核心思想就是把一些问题抽象成图,从一个点开始,向四周开始扩散。一般来说,我们写 BFS 算法都是用「队列」这种...
深度优先搜索/回溯算法(DFS) Ⅰ 解题套路 回溯问题实际上就是一颗决策树的遍历过程,需要思考三个问题: 路径:也就是已经做出的选择 选择列表:也就是当前可...
二叉树的遍历 前序遍历递归实现 /** * 递归先序遍历 * */ public void preOrderRecursion(TreeNode nod...
并发模式 Ⅰ 同步模式——保护性暂停模式(Guarded Suspension) 用在一个线程等待另一个线程的执行结果。JDK中join和Future的实现就是采用此模式 实...
并发 Ⅰ 进程与线程 1、程序、进程与线程比较 程序是含有指令和数据的文件,被存储在磁盘或其他数据存储设备中,也就是说程序是静态的代码。 进程是程序的一次执行过程,是系统运行...
排序 冒泡排序从第零个元素开始,挨个比较相邻的右边元素,大于相邻元素则与它互换位置。注意设置一个标记变量flag初始为false,flag表示一趟冒泡中是否有元素交换,有则设...
Java集合总结 上图有些错误,Deque是继承Queue的,而不是Collection;且LinkedList没有继承Deque。 一、概述及常用集合API一览 Itera...