- 博客(13)
- 资源 (7)
- 收藏
- 关注

原创 Redis底层数据结构原理(SDS/链表/跳跃表)
一:SDS1.简述C传统字符串:以空字符结尾的字符数组。在Redis中,C字符串只会作为字符串字面量用在一些无须对字符串值进行修改的地方。对于可以被修改的字符串值,Redis底层使用SDS来表示字符串值。除了用来保存字符串值之外,SDS还被用做缓冲区(buffer),AOF模块中的AOF缓冲区,以及客户端状态中的输入缓冲区,都是由SDS实现的。2.定义每个sds.h/sdshdr结构表示一个SDS值(源码)struct sdshdr{//记录buf数组中已使用字节的数量i
2020-11-20 14:23:51
547

原创 SpringAOP原理图解
最近重温研究下spring,根据源码画成流程图作为总结。因spring源码中各种判断语句各种神操作,所以我主要按照主流程总结画 的图,细节大多省略,目的是能掌握理解springAOP代理类的创建过程(普通Bean创建也是按照这种方式大同小异),以及aop生成代理类执行目标方法时中间所需要的增强器调用过程。其实从图里也大致能明白bean创建的生命周期了。下面流程图针对的是单例的bean。AOP代...
2018-12-26 16:28:00
1436
3

原创 Java并发包重点统计
最近回来复习java并发包的知识,特意做下统计总结(并发包在面试中以及个人技术上都是重中之重),如有错误,恳请指点 。本文通过罗列出来这些常见的,重点的,面试常问的简单介绍供阅读者参考(建议读者针对每个api进行源码阅读),并不一一分析,阅读者根据每个点自行进行补充,不至于没有方向没有目的的学习。或许有空的时候我会把每个API拿出来分析分析。1.CountDownLatch:Count...
2018-12-14 16:03:23
700

原创 源码分析String的substring()在jdk1.6,jdk1.7的区别
String中有很多方法,其中substring是面试常考也是工作常用的,很有必要去分析了解它的实现。substring方法,用于截取字符串中指定位置并返回子字符串。用法比较简单,但它的实现在不同JDK版本却有一定的差异。public static void main(String[] args){ String str = "subtring"; str = str.substri...
2018-08-05 12:52:24
1153
1

原创 StringBuilder与StringBuffer源码分析
StringBuilder与StringBuffer,估计面试被问这两个的问题应该很常见了。但只答出线程安不安全那是远远不够的。这个两个东西的出现大多人应该都知道,因为String不可变,如果想强行可变,那么会导致一直创建新的String对象。StringBuilder,StringBuffer这两个就可以动态添加字符串。那么它们是怎么实现的呢,下面就从源码来进一步认识它们。StringB...
2018-08-01 22:39:27
395
原创 JVM堆中新生代,老年代,永久代(思维导图)
新生代的GC过程叫做MinorGC,采用复制算法,流程如下:(1)把在Eden区与ServivorFrom区中存活的对象复制到ServivorTo区。如果某对象的年龄达到老年代的标准(对象晋升老年代的标准由XX:MaxTenuringThreshold设置,默认为15),则将其复制到老年代,同时把这些对象的年龄加1。如果ServivorTo区的内存空间不够,则也直接复制进老年代。如果对象属于大对象(XX:PretenureSizeThreshold可配置),则也直接将其复制进老年代。(2)...
2020-06-07 21:29:33
508
原创 JVM虚拟机内存区域(思维导图)
一:JVM虚拟机内存区域注:1.线程私有区域生命周期:(随线程启动而创建,随线程关闭而销毁)2.线程共享区域生命周期:(随虚拟机启动而创建,随虚拟机关闭而销毁)
2020-06-07 21:01:56
209
原创 SpringIOC/Bean生命周期原理(思维导图)
个人对SpringIOC/Bean生命周期源码跟踪分析的笔记与总结,建议读者亲自打断点调试跟踪源码。
2020-06-07 15:17:54
435
原创 单例设计模式重点解析(五要点)
本文五要点: 1.双重锁单例模式的实现。 2.双重锁的单例模式是否真的安全以及解决方法。 3.静态内部类单例模式的实现。 4.枚举单例模式的实现。 5.避免反射与反序列化破坏单例。双重锁单例模式实现:public class SingletonLock { private static SingletonLock singletonLock = nu...
2018-12-28 14:34:09
657
原创 ArrayList核心重点源码解析
ArrayList是一个可动态添加删除数据的集合,底层数据结构是数组。当添加数据的容量大于底层数组容量时则会产出扩容,即通过生成数组来实现。它的主要核心就是扩容机制(当插入时所需要的长度超过数组原本的长度时则需要扩容)。本文主要抓ArrayList的重点分析。接下来抱着这几个问题来分析一下ArrayList的源码1.ArrayList怎么判断是否需要扩容的?2.ArrayList是怎么...
2018-08-25 15:01:27
374
原创 Integer源码及知识点扩展
一直把所学的东西记录在自己的笔记上,觉得也应该把一些知识分享出来,个人觉得在学习一个知识点不应该只局限在当前,而应该扩展出此知识点的其他内容以及带着疑问自己去研究,加深对知识的理解。今天就先来分享一下Integer。Integer很多人都很熟悉,就不做多基本介绍,直接聊Integer中的重点跟扩展。本文要讲的重点是Integer缓存,其他构造函数以及方法跟一下源码很快就能懂得。;...
2018-07-31 23:51:56
577
Mysql(索引结构/事务/锁/MVCC/BufferPool/优化)总结
2020-11-30
postgresql-9.6.12-1-windows-x64.exe
2019-08-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人