摘要: LinkedList底层是一个双向链表。之所以说是双向的,是因为同时维护了当前节点的前节点和后节点。 可以看下节点的结构: item就是当前节点的元素,next指向当前节点的后一个节点,prev指向当前节点的前一个节点。 和ArrayList的对比 其实就是链表和数组的对比。 插入,删除: Arra 阅读全文
posted @ 2018-12-28 10:20 boogieman 阅读(613) 评论(0) 推荐(0) 编辑
摘要: ArrayList可以说是一种很常用很常用的数据结构了。 ArrayList底层是通过数组实现的。可以看下源码(基于JDK1.8) 首先从构造函数说起,总共有三种构造函数: public ArrayList(int initialCapacity) { if (initialCapacity > 0 阅读全文
posted @ 2018-12-21 17:11 boogieman 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 优点:查询速度快,理想状态下时间复杂度是O(1) 缺点:空间利用率不高 HashMap是通过数组加链表来实现的。所以一个好的hash算法需要能将key值尽可能地均匀分布到整个数组中。但是再好地hash算法也无法避免 随着数组位置被填充得越来越多,计算后落在数组同一位置的概率会越来越大。所以HashM 阅读全文
posted @ 2018-12-11 11:08 boogieman 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 现象:通过count函数计算出的记录数量总是比实际少一条 如下:目前该collection中共有421条记录 然而通过count函数计算出的结果是420,比实际少了一条 查看了mongo的官方文档: https://docs.mongodb.com/manual/reference/method/d 阅读全文
posted @ 2018-08-07 14:42 boogieman 阅读(2167) 评论(0) 推荐(0) 编辑
摘要: 将原来服务器上的项目代码迁移到另一台服务器上。 首先新建一个空文件,将原服务器代码取下来。 git clone http://***(原服务器代码地址) 进入到取下来的git项目文件夹中: cd *****(取下来的项目文件夹路径) 下面可以参照gitlab给出的提示,首先将原来的origin重命名 阅读全文
posted @ 2018-03-22 10:18 boogieman 阅读(23496) 评论(0) 推荐(0) 编辑
摘要: 责任链模式: 当你想要让一个以上的对象有机会能够处理某个请求的时候,就使用责任链模式(Chain of Responsibility Pattern)。 上面是《Head First 设计模式》 里面对责任链的定义。 个人理解,责任链中的处理彼此间应该都是独立的,不应该存在业务上相互依赖关系,也就说 阅读全文
posted @ 2018-02-09 16:05 boogieman 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 现象:在数据库迁移之后,调用函数报错,提示definer不存在。 查了一下,发现函数和存储过程之类的,本身调用是不存在权限这个概念的。 definer这个值并不会限制函数和存储过程被调用的权限,但会限制函数和存储过程访问数据库的权限。 函数和存储过程在访问数据库时,会获取definer用户对应的数据 阅读全文
posted @ 2018-02-02 18:11 boogieman 阅读(16626) 评论(0) 推荐(1) 编辑
摘要: 背景:一个app的后台开发,现在想要对请求内容进行校验,防止请求内容被人篡改,目前的做法是前端发送请求时,对参数进行MD5摘要算法(中间加了些我们自己约定的规则),将算出来的MD5值附在请求里一起带过来,后台拿着前台传过来的参数进行相同规则的计算,将计算出来的MD5值和前台计算的值进行比较。 想法没 阅读全文
posted @ 2018-01-15 18:23 boogieman 阅读(645) 评论(0) 推荐(0) 编辑
摘要: 本文主要记录一下mongo自动生成的ObjectId是怎么构成的。 以一个ObjectId为例:5996b6de8e4f89047cef0fec 总共有24位16进制数构成,也就是12个字节。 其中前四个字节表示当前的时间戳 : 5996b6de 接着三个字节代表你的主机唯一标识:8e4f89 后面 阅读全文
posted @ 2017-08-18 18:07 boogieman 阅读(2179) 评论(0) 推荐(0) 编辑
摘要: strictfp也就是所谓的FP-strict,可以用来修饰类,接口和方法。 当用来修饰类和接口时,类和接口内部所有的float和double表达式都是FP-strict的。 FP-strcit表示必须使用严格的浮点计算来产生理想的结果,也就是要遵循IEEE标准。 其实主要是为了保证相同的计算,每次 阅读全文
posted @ 2017-06-21 10:33 boogieman 阅读(804) 评论(0) 推荐(0) 编辑