- 博客(22)
- 收藏
- 关注
转载 b+树
一、b+树: b+树是一棵多路平衡查找树 二、b+树的几个特点: 1. 有k个子树的中间节点包含k个元素 2. 根节点的每一个元素一般作为某一子树的最大元素,根元素的最大元素是所有子树的最大元素 3. 非叶子节点不存储实际的数据,只用来索引,所有的数据存储在叶子节点中; 3.1 聚集索引的叶子节点直接存储数据,非聚集索引的叶子节点存储的是指向数据的指针 4. 根节点(...
2018-09-18 12:10:00
83
转载 联合索引
一、联合索引 1. 概念:包含多个列的索引组成一个联合索引。 2. 联合索引的通俗解释:联合索引的两个字段分别类比成电话薄的姓和名,查找目录会先按照人的姓进行排序,然后按照名进行排序。 3. 添加联合索引示例: alter table table_name add index index_name(col_1,col_2,col_n) 4. 联合索引支持的索引...
2018-09-17 11:12:00
102
转载 git 新手使用教程
git的简单介绍: 版本库 版本库也成为仓库,即repository,也可将其理解成一个目录,目录中所有的文件都有会git所管理起来. 版本库的创建 git init命令可以为当前目录生成一个版本库,.git目录为当前工作区的版本库,.git目录默认是隐藏的,.git 工作区=>暂存区(stage)=>本地git仓库(Local Repository)=>远程...
2018-06-24 18:14:00
110
转载 项目应用之-如何在ioc容器初始化以后自动触发某个方法完成某些业务逻辑或者配置...
本人的解决方案如下: 实现InitializingBean接口并实现afterPropertiesSet( ) 方法,该方法会在ioc容器初始化时被执行 @Component public class InitialDemo implements InitializingBean { @Override public void afterProperties...
2018-06-18 12:20:00
144
转载 数据库
数据库的隔离级别: 1.未提交读:读到其它事务未提交的数据 2.已提交读:读到其他事务已经提交的数据 3.可重复读:同一事务内的查询都是与事务开始时刻一致的 3.可串行化:每次读都获取表即共享锁,读写锁互斥 Oracle默认的是已提交读: innodb相关部分: innodb默认的是可重复读,但是为了降低频繁加锁给数据库性能带来的消耗,innodb采用多版本并发控制(MVC...
2018-03-13 20:09:00
85
转载 线程池
什么是线程池? 线程池是基于对象池的思想,开辟一块内存空间,里面存放了众多线程,池中线程的调度交给池管理器来管理 为什么要使用线程池? 在并发任务很多的情况下,每一个线程执行很短的时间就结束了,线程频繁地创建和销毁会大大减低系统的性能,我们创建一个线程池, 当任务需要执行时,线程池会分配一条线程池中的线程去处理此任务,处理完以后放回池中继续去处理其他任务,,使线程得到复用。 j...
2018-03-11 18:52:00
138
转载 悲观锁、乐观锁 乐观锁的一种实现方式-CAS
悲观锁和乐观锁都是一种思想; 悲观锁:独占锁、阻塞锁,在对数据进行操作实时默认会发生冲突,会对数据操作加上锁,当一个线程获得锁以后,其它线程必须等待当前线程 释放锁才能获得锁,悲观锁的实现往往依靠数据库的锁机制. 悲观锁存在的问题:1. 1.在多线程竞争的环境下,频繁地加锁、释放锁会导致比较多的上下问切换 2.一个线程拥有锁会导致其它要竞争此锁的线程挂起 乐观锁:非独占...
2018-03-10 16:34:00
123
转载 Synchronized关键字
为什么要加锁: 多线程访问临界资源时(共享资源)可能发生线程安全问题:比如忘数据库插入一条数据,若此数据不存在则插入,此时多个线程多检测到 了此条数据不存在,那么将会出现数据库被插入多条相同数据的情况,即线程安全问题出现。 java提供了两种方式来实现同步互斥访问:sychronized关键字和Lock java的synchrozied关键字; 我们把synchrozie...
2018-03-10 15:34:00
251
转载 进程与线程
进程与线程: 进程是操作系统进行资源分配和调度的独立单位,每个进程都有一块自己独立的空间,而进程是cpu调度和分派的基本单位, 线程是进程的一个实体,一个进程可以有多个线程,多个线程共享一个进程的资源,由于线程的划分尺度小,进程间的切换消耗的 资源大,效率较低,多线程的并发性要高。 以下内容为本人当前知识架构下的个人理解,随时可能修改,如有不当请见谅: ...
2018-03-10 10:49:00
62
转载 BIO与NIO
先理解一下操作系统中的几个概念:(一下为个人理解,如有不当请见谅) 同步和异步关注的是消息通信的机制 同步:同步指发出调用以后,在没有得到结果之前调用不返回,一旦返回就说明有了调用结果 异步:异步的和同步正好相反,一旦发出调用,调用就立刻返回,当有返回结果是调用者就会受到对应的通知,异步最大的特点就是通知。 阻塞和非阻塞关注的是程序在等待调用结果时的状态。 阻塞:等待调用...
2018-03-09 22:41:00
83
转载 剑指offer_UglyNummber
1 /*思路:为了提高实践效率,不对每一个数都判断它是不是丑数直至找到第N个丑数 2 用实践换空间,创建一个数组对已有的丑数进行排序,下一个丑数是由前面的丑数乘2,乘3或乘5得到的 3 分别找到第一个大于当前最大丑数的数,比较三者的最小值,最小值则为我们要找的下一个丑数 4 注意:不是每次都从数组的第一个元素开始*2 *3 *5 我们要分别记录三个索引值,这三个索引值所...
2018-02-12 11:10:00
82
转载 剑指offer_最长不含重复字符的子字符串
/** 题目:最长不含重复字符的子字符串* 解法:动态规划* 定义函数f(i)表示以第i个字符结尾的包含当前字符的不含重复字符的子字符串的最长长度* 如果当前的第i个字符没有出现过,那么f(i)=f(i-1)+1,如果已经出现过,设当前元素与上次出现的距离为d,如果d小于等于* f(i-1),说明上次出现的字符出现在f(i-1)对应的最长字符串之中,f(i)=d;如果d大于f(i-1),...
2018-02-11 17:59:00
73
转载 剑指offer_将数字 转换成字符串
//把数字转化成字符串/** 思路:以12258为例,如果从左往右递归,会造成重复计算子问题,我们从右往左计算,创建一个辅助数组,数组的值保存的是* 从当前下标的元素到数组末尾元素这一段子字符串有多少种翻译方法,数组的第i个元素值与数组的第i+1个值和第i+2个值有关* f(i)=f(i+1)+g(i,i+1)*f(i+2),其中g(i,i+1)的值和字符串中第i和第i+1个元素组合是否...
2018-02-11 15:38:00
95
转载 剑指offer_礼物的
//获取礼物的最大值,此题是典型的动态规划问题//思路:1.设到达下标为(i,j)的元素所能拿到的最大总和为f(i,j),那么次f(i,j)只和到达它上面元素的总和f(i-1,j)和//到达它左边元素的总和f(i,j-1)有关 f(i,j)=max[f(i-1,j),f(i,j-1)]+arr[i,j];设一个一维数组,数组的前j个数组分别是//f(i,0),f(i,1)...f...
2018-02-11 14:03:00
88
转载 剑指offer_矩阵中的路径
题目:详见剑指offer面试题12 思路:这是回溯算法的典型例子 首先,在矩阵中任选一个格子作为路径的起点。如果路径上的第i个字符不是ch,那么这个格子不可能处在路径上的第i个位置。如果路径上的第i个字符正好是ch,那么往相邻的格子寻找路径上的第i+1个字符。除在矩阵边界上的格子之外,其他格子都有4个相邻的格子,重复这个过程直到路径上的所有字符都在矩阵中找到相应的位置。 由...
2018-01-19 18:58:00
88
转载 剑指offer_旋转数组的最小元素
题目:输入递增数组的一个旋转,输出旋转数组的最小元素。 /* 解题思路: 1.本题中,最小的元素是被旋转部分数组的第一个元素;采用二分法,当中间值小于数组末尾元素时,说明此中间值处于被旋转 部分数组当中,最小值在左边包含中间值的数组中,high=mid;当中间值大于数组末尾元素时,说明此中间值处于前面 未被旋转的部分数组中;最小值在中间值的右边:low=...
2018-01-19 14:49:00
124
转载 剑指offer_用两个栈实现队列
题目:用两个栈来实现一个队列 思路:根据栈和队列的特点可知:栈是后进先出的,队列是先进先出的,用两个栈,栈1用于入队,栈2用于出队。入队时向栈1进栈, 出队时:如果栈1和栈2都为空,主动捕获队列元素为空异常。如果栈2不为空,直接从栈2中弹出元素,否则将栈1中所有的元素依次 ...
2018-01-19 13:54:00
86
转载 剑指offer_二叉树的的下一结点
题目:输入二叉树的某一个结点,查找出此二叉树当前结点中序遍历输出的下一结点,每一个结点不仅包含左指针和右指针,还 包含指向父结点的指针。 思路:分一下四种情况 1.当前结点为空,则下一输出结点为空 ...
2018-01-18 13:07:00
82
转载 剑指offer_重构二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,假设结果中不包含重复元素,请重建该二叉树。 思路:前序:访问顺序:根-->左子树-->右子树 后序:访问顺序:左子树-->根-->右子树 1.要想重建一个序列的二叉树,就要知道每序...
2018-01-17 23:00:00
104
转载 剑指offer替换字符串中的空格
% 题目:实现一个函数,将字符串中的空格替换成"%20"。 思路:直接遍历每遇一个空格,此空格后的所有元素要总体往后移,时间效率较低。现在遍历一次字符串,求出此字符串中的空格数,由此计算出 替换之后字符串的总长度,然后定义两个指针p1和p2,p1指向原始字符串末尾,p2指向替换之后的字符串的末尾。此时向前移动p1, ...
2018-01-17 22:17:00
75
转载 剑指offer二维数组的查找
题目:一个指定n行m列二维数组的每一行按照从左到右递增,每一列按照从上到下递增;输入一个这样一个数组和一个整数,判断这个数组中是否存在 这个整数。1.2018-01-17 19:46:56 思路:每一次将右上角的元素和目标元素进行比较,如果右上角的元素比目标元素小,说明当前行的元素全部小于目标...
2018-01-17 19:48:00
62
转载 剑指offer_查找数组中的任一重复元素
题目要求: 题目一: 1.有一个长度为n+1的整型数组中有所有数字都在1~n范围内的数组 2.找出数组中任意一个重复的数字3.不允许修改原始数组思路1:浪费时间的算法 时间复杂度为O(logn) 空间复杂度为O(1) 1.题目说明数组中肯定存在重复的数字 B.采用二分查找法,将总范围划分为左右两个范围,遍历整个数组,统计数组元素数值处于左范围内的个数, 如果数组元素在左边范...
2018-01-07 12:16:00
91
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人