自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿Q博客

请指正

  • 博客(11)
  • 收藏
  • 关注

原创 聊聊MySql的索引

0 前言  数据库对于小白最激动人心的就是索引了,mysql主要使用B+树和Hash两种方式来实现索引。不同于容易理解的,功能相对单一的hash索引,B+数实现的索引的特性就丰富很多。聚集索引,覆盖索引,范围搜索优化都是基于B+树的特性实现的。今年我们就来聊一聊mysql的索引技术。1 索引分类  mysql的索引从数据结构可以分为B+树索引,Hash索引,空间索引和全文索引(后两...

2018-03-10 21:18:34 313

原创 如何在handler执行后在@responsebody生效前修改返回值

0 前言Interceptor作为springmvc的一个组件,可以在调用handler之前和之后处理其他事情。不同于Filter的是,Interceptor能够感知handler。但是该组件有一个坑你可能没有注意过,那就是Interceptor的postHandle不能修改@ResponseBody和ResponseEntity方法的响应。我们先介绍Interceptor组件和配置方法,最后...

2018-03-08 19:27:56 10324 6

原创 spring 之 Http Cache 和 Etag

0 前沿缓存对于计算机网络是一个很重要的概念。比如cpu的一级、二级,甚至三级缓存,内存由可以理解为cpu高速缓存的缓存,而磁盘(硬盘)是内存的缓存。那磁盘的缓存呢?那当然是网络了。http同样也对缓存提供了支持。http头中有这样两个属性:Cache-Control和If-None-MatchCache-Control:max-age=xxx 在该时间内,浏览器如果发起请求,会直接去...

2018-03-08 15:26:20 3629 1

原创 聊聊Executor

Executor线程池的顶层设计1.任务:实现Runnabl接口或者Callable接口的类2.执行策略:Excutor3.计算结果: Future(异步计算的结果)主要讲讲2 Executor将工作单元(Runnable)和执行策略分离开来。ThreadPoolExecutor是主要的实现类。ThreadPoolExecutor是这样设计的:public ThreadP...

2018-03-07 19:54:54 159

原创 聊聊HashMap

HashMap是基于哈希算法的键值对存储容器,底层使用散列桶实现,当发生碰撞时使用链表存储,java8引入了红黑树来提升性能。HashMap中有很多设计需要我们取考虑,比如通过hash()计算index;在put()和get()时,equal()和hashCode()都有什么作用;如何综合考虑空间利用率和查找效率,等等。本文就从这些方面来聊聊HashMap。1.HashMap基本原理 ...

2018-03-06 16:28:36 242

原创 聊聊红黑树

红黑树是一种自平衡二叉查找树,在数据结构中占有重要地位。java8库中的HashMap中变引入了红黑树:当散列桶中的链表长度大于等于8,就是用红黑树构建该链表。红黑树的主要目的是实现高效的查找,所以需要从查找算法说起。我们最熟悉的快速查找算法便是二分查找,算法复杂度为O(lgN)。如果我们对于数据的处理仅限于查找操作,那么二分查找就够用了。但是通常我们对于数据的操作不但包括查找,还有插入、...

2018-02-27 10:21:25 178

原创 聊聊java 中的偏向锁、轻量级锁、重量级锁的介绍

重量级锁:即为传统锁,是通过互斥量来实现代码同步,但是互斥量相对于CAS(原子性操作),要产生更多的性能消耗。轻量级锁:轻量级锁是通过CAS来实现同步,相对重量级锁的互斥量,性能会好很多。但是轻量级锁不是为了替代重量级锁。                    轻量级锁能够提升程序同步新能的依据是:对于绝大多数的锁,在整个同步周期内都是不存在竞争的,这是一个经验数据。               ...

2018-02-24 15:00:45 495

转载 Java GC、新生代、老年代

Java GC、新生代、老年代原文:http://www.cnblogs.com/yydcdut/p/3959711.html堆内存                                                                                 Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类

2017-08-21 10:57:26 171

原创 文章标题

最近看书时了解了一点编译时和运行时的概念。稍稍总结一下自己的一点看法: java推崇的是可编译即可运行,也就是说只要你编译通过,运行也就不会出现问题(逻辑错误除外),在这一点上java做得也很棒。但是要真正做到可编译即可运行还是不太现实的。 一方面,限制条件太多。为了在编译时就检查出运行不异常,需要很多的信息。而有些信息在编译时并不能知晓,其中有一部分也是反射要解决的问题。而有些

2017-03-21 12:40:17 197

转载 操作系统之信号量解决同步互斥问题

最近在看操作系统的进程线程方面的知识,觉得这篇博客讲的确实不错。推荐一看。博客网址:http://www.cnblogs.com/whatbeg/p/4435286.html

2017-03-05 14:33:41 1067

原创 二叉搜索树之前驱后继

什么是二叉搜索树想必对二叉树都有了解,那么什么是二叉搜索树呢? 首先给出每个节点的属性: 1)keykey 关键字 2)pp 父亲节点 3)leftleft 左孩子 4)rightright 右孩子 其定义如下: 对于任何的节点xx,其左子树的关键字最大不超过x.keyx.key,其右子树的关键字最小不小于x.keyx.key。 下面的所有性质都是围绕该定义展开的。 方法:

2017-03-04 22:19:36 1546

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除