一、几种类型 1.vector,支持快速随机访问,类似数组,通过下标方式来访问,但是对中间的插入或删除访问效率比较低; 2.list,双向链表,一个是数据项,一个是链表项,支持快速插入或删除,因为不需要移动位置,只需要修改它里边的一个指针、一个地址就可以; 3.deque,双端队列,在两端插入或删除 ...
分类:
编程语言 时间:
2019-09-18 00:55:57
阅读次数:
110
1.轻量级锁(Lock)与重量级锁(synchronized):都是可重入锁 2.可重入锁(递归锁):方法中嵌套方法,锁可传递 3.读写锁(ReentrantReadWriteLock)--读写分离 读锁(获取该值信息)和写锁(对该值操作) 4.乐观锁 本质没有锁,效率比较高、无阻塞、无等待、重试。 ...
分类:
其他好文 时间:
2019-09-15 14:14:55
阅读次数:
130
1.MySQL的分层 MySQL分为2层:Server层和存储引擎。 2.Server层 连接器:管理连接权限验证。 查询缓存:命中缓存直接返回查询结果。 分析器:分析语法。 优化器:生成执行计划,选择索引。 执行器:操作索引返回结果。 连接器:管理连接权限验证。 查询缓存:命中缓存直接返回查询结果 ...
分类:
数据库 时间:
2019-09-08 23:54:09
阅读次数:
215
一般形式的用邻接矩阵来实现dijkstra效率比较低,我这里直接记录的是用邻接表的方法以及用优先队列加以应用。 首先解释什么是dijkstra算法 dijkstra算法 dijkstra算法适用于求单源最短路,即可以求出起点到其余各点之间的最短路。它的算法实现是一个不断更新的过程。 举一个最简单的例 ...
分类:
编程语言 时间:
2019-08-31 14:44:57
阅读次数:
128
MapReduce案例 1.单词计数--wordcount 首先准备好文件 开始编写程序 2.计算每个人的钱数 文件1 文件2 代码编写 3.求出共同好友 准备文件 编写代码 上面的程序输出的结果 最终结果展示 4.读取JSON数据 5.分区解决数据倾斜 准备一个文件里面一个单词非常多别的很少 5. ...
分类:
其他好文 时间:
2019-08-29 16:04:43
阅读次数:
62
前言:最近玩esp8266和ucos-iii以及在学c++比较多,接触的大部分都是指针、结构体、链表;刚好自己又在看数据结构(数据结构真的非常重要,要好好学,是学算法的敲门砖,哈哈哈),个人看法在对顺序表进行元素增和删操作,效率比较低(要移动非常多的其他元素),而我之前写的对链表操作,使用指针操作, ...
分类:
其他好文 时间:
2019-08-27 09:15:38
阅读次数:
114
find 文件搜索 (在整个硬盘中查找,效率比较低) find 【搜索范围】【匹配条件】 -name 按照文件名搜索 find /etc -name filename 找出文件名为filename的文件 find /etc -name init * 找出文件名以init开头的文件 find find ...
分类:
其他好文 时间:
2019-08-22 01:08:13
阅读次数:
116
当多个线程访问共享数据的时候,多个线程之间是彼此不可见的,此时就会出现线程安全问题,但是我们知道使用synchronized关键字进行加锁实现同步是可以解决问题的,但是这种方法的效率比较低。 volatile的作用就是多个线程访问共享数据的时候,在内存中的共享数据对多个线程彼此是可见的。相较于syn ...
分类:
其他好文 时间:
2019-08-19 13:22:47
阅读次数:
151
"LESS官方文档" 一、通过命令行进行编译(可实时监听并编译) 用起来比较复杂,但效率比较高. 1. 步骤一:安装Node.js "nodeJS下载地址" 2. 安装Less 3. 安装CSS压缩插件 4. 安装自动实时编译Less文件插件 二、使用VSCode开发工具自动编译 保存时编译,可以指 ...
分类:
其他好文 时间:
2019-08-09 23:22:44
阅读次数:
134
众所周知,JDK提供了AtomicInteger保证对数字的操作是线程安全的,线程安全我首先想到了synchronized和Lock,但是这种方式又有一个名字,叫做互斥锁,一次只能有一个持有锁的线程进入,再加上还有不同线程争夺锁这个机制,效率比较低,所以又称“悲观锁”。 但是相应的有了乐观锁的概念, ...
分类:
编程语言 时间:
2019-08-08 21:39:27
阅读次数:
165