- 博客(11)
- 收藏
- 关注
原创 聊聊MySql的索引
0 前言 数据库对于小白最激动人心的就是索引了,mysql主要使用B+树和Hash两种方式来实现索引。不同于容易理解的,功能相对单一的hash索引,B+数实现的索引的特性就丰富很多。聚集索引,覆盖索引,范围搜索优化都是基于B+树的特性实现的。今年我们就来聊一聊mysql的索引技术。1 索引分类 mysql的索引从数据结构可以分为B+树索引,Hash索引,空间索引和全文索引(后两...
2018-03-10 21:18:34
393
原创 如何在handler执行后在@responsebody生效前修改返回值
0 前言Interceptor作为springmvc的一个组件,可以在调用handler之前和之后处理其他事情。不同于Filter的是,Interceptor能够感知handler。但是该组件有一个坑你可能没有注意过,那就是Interceptor的postHandle不能修改@ResponseBody和ResponseEntity方法的响应。我们先介绍Interceptor组件和配置方法,最后...
2018-03-08 19:27:56
10775
7
原创 spring 之 Http Cache 和 Etag
0 前沿缓存对于计算机网络是一个很重要的概念。比如cpu的一级、二级,甚至三级缓存,内存由可以理解为cpu高速缓存的缓存,而磁盘(硬盘)是内存的缓存。那磁盘的缓存呢?那当然是网络了。http同样也对缓存提供了支持。http头中有这样两个属性:Cache-Control和If-None-MatchCache-Control:max-age=xxx 在该时间内,浏览器如果发起请求,会直接去...
2018-03-08 15:26:20
3880
1
原创 聊聊Executor
Executor线程池的顶层设计1.任务:实现Runnabl接口或者Callable接口的类2.执行策略:Excutor3.计算结果: Future(异步计算的结果)主要讲讲2 Executor将工作单元(Runnable)和执行策略分离开来。ThreadPoolExecutor是主要的实现类。ThreadPoolExecutor是这样设计的:public ThreadP...
2018-03-07 19:54:54
191
原创 聊聊HashMap
HashMap是基于哈希算法的键值对存储容器,底层使用散列桶实现,当发生碰撞时使用链表存储,java8引入了红黑树来提升性能。HashMap中有很多设计需要我们取考虑,比如通过hash()计算index;在put()和get()时,equal()和hashCode()都有什么作用;如何综合考虑空间利用率和查找效率,等等。本文就从这些方面来聊聊HashMap。1.HashMap基本原理 ...
2018-03-06 16:28:36
332
原创 聊聊红黑树
红黑树是一种自平衡二叉查找树,在数据结构中占有重要地位。java8库中的HashMap中变引入了红黑树:当散列桶中的链表长度大于等于8,就是用红黑树构建该链表。红黑树的主要目的是实现高效的查找,所以需要从查找算法说起。我们最熟悉的快速查找算法便是二分查找,算法复杂度为O(lgN)。如果我们对于数据的处理仅限于查找操作,那么二分查找就够用了。但是通常我们对于数据的操作不但包括查找,还有插入、...
2018-02-27 10:21:25
241
原创 聊聊java 中的偏向锁、轻量级锁、重量级锁的介绍
重量级锁:即为传统锁,是通过互斥量来实现代码同步,但是互斥量相对于CAS(原子性操作),要产生更多的性能消耗。轻量级锁:轻量级锁是通过CAS来实现同步,相对重量级锁的互斥量,性能会好很多。但是轻量级锁不是为了替代重量级锁。 轻量级锁能够提升程序同步新能的依据是:对于绝大多数的锁,在整个同步周期内都是不存在竞争的,这是一个经验数据。 ...
2018-02-24 15:00:45
545
转载 Java GC、新生代、老年代
Java GC、新生代、老年代原文:http://www.cnblogs.com/yydcdut/p/3959711.html堆内存 Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类
2017-08-21 10:57:26
199
原创 文章标题
最近看书时了解了一点编译时和运行时的概念。稍稍总结一下自己的一点看法: java推崇的是可编译即可运行,也就是说只要你编译通过,运行也就不会出现问题(逻辑错误除外),在这一点上java做得也很棒。但是要真正做到可编译即可运行还是不太现实的。 一方面,限制条件太多。为了在编译时就检查出运行不异常,需要很多的信息。而有些信息在编译时并不能知晓,其中有一部分也是反射要解决的问题。而有些
2017-03-21 12:40:17
223
转载 操作系统之信号量解决同步互斥问题
最近在看操作系统的进程线程方面的知识,觉得这篇博客讲的确实不错。推荐一看。博客网址:http://www.cnblogs.com/whatbeg/p/4435286.html
2017-03-05 14:33:41
1118
原创 二叉搜索树之前驱后继
什么是二叉搜索树想必对二叉树都有了解,那么什么是二叉搜索树呢? 首先给出每个节点的属性: 1)keykey 关键字 2)pp 父亲节点 3)leftleft 左孩子 4)rightright 右孩子 其定义如下: 对于任何的节点xx,其左子树的关键字最大不超过x.keyx.key,其右子树的关键字最小不小于x.keyx.key。 下面的所有性质都是围绕该定义展开的。 方法:
2017-03-04 22:19:36
1613
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人