volatile的作用及原理 当一个变量被volatile修饰时,会拥有两个特性: 保证了不同线程对该变量操作的内存可见性.(当一个线程修改了变量,其他使用次变量的线程可以立即知道这一修改). 禁止了指令重排序. 1. 保证内存可见性 JMM操作变量的时候不是直接在主存进行操作的,而是每个线程拥有自 ...
分类:
编程语言 时间:
2021-02-18 13:42:21
阅读次数:
0
1.原子性(Atomicity) 定义:不可再分割的操作 Java内存模型直接保证原子性变量操作包括:read、load、assign、use、store 和 write 这6个 2.可见性(Visibility) 定义:是指当一个线程修改了一个共享变量的值时,其他线程能够立即的指这个修改 java ...
分类:
其他好文 时间:
2021-02-18 13:27:59
阅读次数:
0
https://blog.csdn.net/pan_junbiao/article/details/105913518 Java8提供了Stream(流)处理集合的关键抽象概念,它可以对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。Stream API 借助于同样新出现的Lambda ...
分类:
编程语言 时间:
2021-02-18 13:24:59
阅读次数:
0
快速排序是用的比较多的排序算法,比如需要对“6 1 2 7 9 3 4 5 10 8”这几个数进行排序。方法是首先在这个序列中随便找一个数作为基准数。比如找 6 作为基准数, 然后需要将这个序列中所有比基准数 6 大的数放右边,比基准数小的数放 6 的左边,类似如下排列: 初始的状态下数字 6 在序 ...
分类:
编程语言 时间:
2021-02-18 13:11:13
阅读次数:
0
没啥太难的思路,代码如下: /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * List ...
分类:
编程语言 时间:
2021-02-18 12:53:10
阅读次数:
0
一.总述 分治算法其实就是将一个大问题分解为若干个类型相同但是规模较小的子问题,使用递归的方式一直分解下去,然后将子问题的解合并得到原问题的解的策略。 二.经典的分治算法列举 二分搜索、大整数乘法、strassen矩阵乘法、棋盘覆盖、合并排序、快速排序、线性时间选择、最接近点对问题、循环赛日程表、汉 ...
分类:
编程语言 时间:
2021-02-17 14:56:19
阅读次数:
0
We are given a matrix with rows and columns has cells with integer coordinates , where?`0 这道题给了一个R行C列的矩阵,又给了一个起始点 (r0, c0),让按照离起始点的曼哈顿距离从小到大排序坐标点。博主最先 ...
分类:
其他好文 时间:
2021-02-17 14:32:03
阅读次数:
0
/etc/resolv.conf它是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序。该文件是由域名解析 器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。它的格式很简单,每行以一个关键字开头,后接一个或多个由空格隔开的参数。 reso ...
分类:
其他好文 时间:
2021-02-16 12:48:24
阅读次数:
0
1. 循环遍历查找 2. 二分法查找 前提:已经从小到大排序的数组序列。 原理:每次都以中间元素分割,如果中间的元素小于查找元素,则说明查找元素在后面,再从中间元素后面的元素为开始,接着查找,以此类推;如果中间元素大于要查找的元素,则说明查找元素再中间元素的左边,则从中间元素的前一个元素查找; 数组 ...
分类:
编程语言 时间:
2021-02-16 12:40:21
阅读次数:
0
set 其作用是去重,排序。 set常用操作: #include<set> //声明一个set容器 set<typename> s;//定义,typename为数据类型,假设定义了一个容器s //常用操作: s.insert(x);//将x插入set容器中,并自动排序,去重 s.find(value ...
分类:
其他好文 时间:
2021-02-16 12:32:19
阅读次数:
0