- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 链表
定义链表是一种物理上非连续、非顺序的存储结构,数据元素之间的顺序是通过每个元素的指针关联的。链表由一系列节点组成,每个节点一般至少会包含两部分信息:一部分是元素数据,另一部分是指向下一个元素指针。与数组相比,链表具有其优势:1.链表克服了数组需要提前设置长度的缺点,在运行时可以根据需要随意添加元素;2.计算机的存储空间并不总是连续可用的,而链表可以灵活地使用存储空间,还能更好地对计算机的...
2019-12-05 16:22:19 157
原创 队列
队列它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in first out)线性表。单向队列只能一段删除一端插入,由于队列长度是固定的,当元素删除之后,位置就空下来,但是插入的时候却不能使用这些位置。所以采用循环队列java...
2019-12-03 19:45:09 127
原创 栈
栈概念是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)后进先出(LIFO, Last In First Out)先进后出例子:羽毛球筒为例,羽毛球筒就是一个栈,刚开始羽毛球筒是空的,也就是空栈,然后我们一个一个放入羽毛球,也就是一个一个push进栈,当...
2019-12-02 21:05:21 176
原创 插入排序
直接插入排序基本思想是每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。public static int[] sort(int[] array){ int j; //从下标为1的元素开始选择合适的位置插入,因为下标为0的只有一个元素,默认是有序的 for(int i = 1 ; i < array.leng...
2019-12-02 20:32:24 79
原创 选择排序
对于冒泡排序而言,每次都需要元素比较,元素交换次数较多的问题选择排序是每一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。分为三步:①、从待排序序列中,找到关键字最小的元素②、如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换③、从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束。public...
2019-12-02 20:15:04 76
原创 冒泡排序
冒泡排序的英文Bubble Sort,是一种最基础的交换排序。这种排序算法的每一个元素都可以像小气泡一样,根据自身大小,一点一点向着数组的一侧移动。冒泡算法的运作规律如下:①、比较相邻的元素。如果第一个比第二个大,就交换他们两个。②、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数(也就是第一波冒泡完成)。③、针对所有的元素重复以上的步骤,除...
2019-11-26 18:44:20 118
原创 数据结构--数组
java的数组使用在Java中,数组是用来存放同一种数据类型的集合,注意只能存放同一种数据类型(Object类型数组除外)。1.数组声明方式数据类型 [] 数组名称 = new 数据类型[数组长度];数据类型 [] 数组名称 = {数组元素1,数组元素2,…}//声明数组1,声明一个长度为3,只能存放int类型的数据int [] myArray = new int[3];...
2019-11-26 17:24:38 96
原创 数据结构和算法
数据结构数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。一、数据结构的基本功能①、如何插入一条新的数据项②、如何寻找某一特定的数据项③、如何删除某一特定的数据项④、如何迭代的访问各个数据项,以便进行显示或其他操作二、常用的数据结构数组 栈 队列 链表 树 hash 堆算法算法简单来说就是解决问题的步骤。一、算法的五个特征①、有穷性:...
2019-11-26 17:12:22 668 1
翻译 mysql binlog
1.mysql如何得知Binlog完整性:一个事物的binlog有完整格式的:statement格式的binlog,最后会有commit;row格式的binlog,最后会有一个XID EVENT1、redo log和binlog采用两阶段提交,目的是为了双方能多一个选择,在mysql宕机时,如果redo log处于commit,事务直接提交,如果redo log处于prepare,bin...
2019-08-15 20:52:17 149
翻译 表空间整理
1:为啥删除了表的一半数据,表文文件大小没变化?innodb里面的数据都是b+ tree结构组织的,如果要删除一行数据,innodo只是将这行记录标记为 删除。后续可能会复用这个位置。因为delete 命令其实只是把记录的位置,或者数据页标记为了“可复用”,但磁盘文件的大小是不会变的。也可以认为是一种逻辑删除,所以物理空间没有实际释放,只是标记为可复用,表文件的大小当然是不变的啦!这些可以...
2019-07-14 17:24:04 413
翻译 mysql锁
一致性视图,保证了当前事务从启动到提交期间,读取到的数据是一致的(包括当前事务的修改)。当前读,保证了当前事务修改数据时,不会丢失其他事务已经提交的修改。两阶段锁协议,保证了当前事务修改数据时,不会丢失其他事务未提交的修改。RR是通过事务启动时创建一致性识图来实现,RC是语句执行时创建一致性识图来实现。1.innodb支持RC和RR隔离级别实现是用的一致性视图(consistent r...
2019-07-13 17:37:58 92
转载 myql相关知识
1.事务的特性:原子性 一致性 隔离性 持久性2.多事务同时执行存在的问题:脏读 不可重复读 幻读3.事务隔离级别 读未提交 读提交 可重复度 串行化4.隔离级别的却别读未提交:一个事务还未提交,他所做的变更就可以被别的事务看到。读提交:一个事物提交之后,他所做的变更才可以被别的事务看到可重复度:一个事物执行过程中看到的数据是一致的,未提交的更改对其他事物是不可见的串行化:对应一个记...
2019-07-13 13:44:15 141
转载 mysql系列3
更新语句的执行过程。更新流程涉及到的 redo log(重做日志) binglog (归档日志)redo log临时更新缓存平台,在一定时机更新到磁盘上。但有一条记录需要更新的,innodb殷勤会先把记录写到redolog中并更新内存。同时在适当事假将这个操作记录更新到磁盘里面,往往是在系统比较空闲的时候。有了redolog innodb就可以保证即使数据库发成异常重启,之前的提交记录就...
2019-07-13 11:16:39 108
翻译 设计模式-简单工厂
//简单工厂模式 使用者不在关注创建对象依赖于哪个基类 只需要知道函数名称就行//篮球var Basketball = function () { this.info = "篮球盛行于美国";};Basketball.prototype = { getMember : function () { console.log("每个队伍需要5名队员"); }, g...
2019-06-22 17:25:28 93
翻译 js对象继承
//单继承 属性复制(浅复制:引用类型的属性操作会有影响)var extend = function (target, source) { //遍历源对象中的属性 for (var property in source) { //将元对象中的属性复制到目标对象中 target[property] = source[property]; }...
2019-06-22 16:48:52 95
翻译 js对象继承
子类的原型对象-类式继承//父类function SuperClass(){ this.superVal = true;}//为父类添加公共方法SuperClass.prototype.getSupperVal = function () { return this.superVal; };//子类function Child() { this.subVal ...
2019-06-22 16:28:35 916
翻译 js函数对象创建
var Book = function(name,title,price){ this.name = name; this.titile = title; this.price = price;};var book = BOOK('js','2012',12.4);var book2 =new BOOK('js','2012',12.4);上面创建的book与...
2019-06-22 14:00:55 203
翻译 js函数创建二
函数对象Function.prototype.addMethod = function(name,fn){ this[name] = fn; return this;}这样就可以链式添加函数var method = function(){};method.addMethod('checkName',function(){ }).addMethod('checkEmail',f...
2019-06-22 13:28:47 107
翻译 js函数创建
js学习#函数第一版function checkName(){}function checkEmail(){}或者var checkName = function(){}var checkEmail = function(){}问题:这么编写函数创建了很多全局变量,(js中一切皆对象),会影响到别的别的功能,函数覆盖。第二版针对创建多个全局变量,简单结局方案是将这些变量...
2019-06-21 09:35:46 258
转载 ntty
上章提到过Java的NIO采取的是多路IO复用模式,其衍生出来的模型就是Reactor模型。多路IO复用有两种方式,一种是select/poll,另一种是epoll。在windows系统上使用的是select/poll方式,在linux上使用的是epoll方式,主要是由于DefaultSelectorProvider具体选择的selector决定。epoll是在linux2.6之后才支持的,sel...
2019-06-01 17:12:16 165
原创 mysql查看数据库空间
查看数据库实例show databases;查看数据库服务器所有空间大小:select table_schema, concat(truncate(sum(data_length)/1024/1024,2),' mb') as data_size,concat(truncate(sum(index_length)/1024/1024,2),'mb') as index_sizefrom...
2019-05-07 16:06:10 3504
翻译 java spi机制使用
jdkSpi使用SPI的全名为Service Provider Interface系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案,xml解析模块、jdbc模块的方案等。面向的对象的设计里,我们一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候能不在程序里...
2019-05-06 20:34:41 155
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人