- 博客(17)
- 收藏
- 关注
原创 面经系列之 设计模式(创建型)
设计模式创建型模式1 简单工厂模式(普通简单工厂,多方法简单工厂,静态简单工厂)1)模式定义2)类图3)代码示例4)优缺点5)适用场景2 工厂方法模式1)模式定义2)类图3)代码示例4)优缺点5)适用场景3)抽象工厂模式1)模式定义2)类图3)代码示例4)优缺点5)适用场景4)建造者模式创建型模式1 简单工厂模式(普通简单工厂,多方法简单工厂,静态简单工厂)1)模式定义在简单工厂模式中,...
2020-01-04 13:09:34
708
原创 面经系列之 数据库
数据库1 数据库三范式1)列都是不可再分2)每个表只描述一件事情3)不存在对非主键列的传递依赖2 数据库事务1)原子性(Atomicity)2)一致性(Consistency)3)隔离性(Isolation)4)永久性(Durability)3 存储过程(暂时不懂)4 触发器(一段能自动执行的程序)不懂5 数据库并发策略1)乐观锁2)悲观锁3)时间戳6 数据库锁1)行级锁2)表级锁3)页级锁7 数...
2020-01-03 14:34:01
1115
原创 面经系列之 java基础
java基础java基础1 值传递和引用传递2 为什么重写equals()时也要重写hashcode()3 java面向对象特性4 java和c++的区别5 多态的实现原理1 类调用1)静态绑定2)动态绑定2 接口调用6 抽象类和接口的区别以及使用场景7 泛型java基础1 值传递和引用传递值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量。引用传递一般是对于对象型...
2019-12-31 11:49:14
709
原创 算法系列之二叉树的遍历
1 前序遍历在迭代算法中,思路演变成,每到一个节点 A,就应该立即访问它。因为,每棵子树都先访问其根节点。对节点的左右子树来说,也一定是先访问根。在 A 的两棵子树中,遍历完左子树后,再遍历右子树。因此,在访问完根节点后,遍历左子树前,要将右子树压入栈。public class TreeNode { int val; TreeNode left; ...
2019-12-30 11:20:36
137
原创 虚拟机系列之 线程安全与锁优化
线程安全与锁优化线程安全与锁优化1 线程安全1)Java语言中的线程安全2)线程安全的实现方法2 锁优化1)自旋锁与自适应自旋2)锁消除3)锁粗化4)轻量级锁5)偏向锁线程安全与锁优化1 线程安全1)Java语言中的线程安全1 不可变Java语言中,如果共享数据是一个基本数据类型,只要在定义时使用final关键字修饰它就可以保证它是不可变的。如果共享数据是一个对象,那就需要保证对象的行...
2019-12-27 13:55:19
149
原创 虚拟机系列之 Java内存模型与线程
Java内存模型与线程Java内存模型与线程1 概述2 硬件的效率与一致性3 Java内存模型1)主内存与工作内存2)内存间交互操作3)volatile4)对于long 和double型变量的特殊规则5)原子性、可见性与有序性6)先行发生原则4 Java与线程1)线程的实现2)Java线程调度3)状态转换Java内存模型与线程1 概述计算机的运算能力强大,且计算机的运算速度与它的存储和通讯子...
2019-12-27 12:19:32
123
原创 虚拟机系列之 虚拟机字节码执行引擎
虚拟机字节码执行引擎虚拟机字节码执行引擎1 概述2 运行时栈帧结构1)局部变量表2) 操作数栈3)动态连接4)方法返回地址5)附加信息3 方法调用1)解析2)分派3)单分派与多分派4 基于栈的字节码解释执行引擎虚拟机字节码执行引擎1 概述在不同的虚拟机实现里面,执行引擎在执行java代码的时候可能有解释执行和编译执行两种选择,也可能两者兼备,甚至还可能包含几个不同级别的编译器执行引擎,但是从...
2019-12-26 11:49:45
247
原创 虚拟机系列之 虚拟机类加载机制
类加载机制类加载机制1 概述2 类加载的时机3 类加载的过程1)加载2)验证3)准备4)解析5)初始化4 类加载器1)类与类加载器2)双亲委派模型3)破坏双亲委派模型类加载机制1 概述在class文件中描述的各种信息,最终都需要加载到虚拟机中之后才能被运行和使用。虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,...
2019-12-25 17:00:26
130
原创 虚拟机系列之 类文件结构
类文件结构类文件结构1 魔数2 常量池3 访问标志4 类索引、父类索引与接口索引集合5 字段表集合6 方法表集合7 属性表类文件结构Class的结构不像xml等描述语言,由于它没有任何分隔符号,所以无论是顺序还是数量,都被严格限定,字节含义和长度先后顺序等,都不允许改变。1 魔数每个class文件的头4个字节称为魔数,它的唯一作用是用于确定这个文件是否为一个能被虚拟机接受的class...
2019-12-25 12:21:39
172
原创 redis系列之 数据库
数据库数据库1 服务器中的数据库2 切换数据库3 数据库键空间1)添加新键2)删除键3)对键取值4)更新键5)其他键空间操作6)读写键空间时的维护操作4 设置键的生存时间或过期时间1)设置过期时间2)保存过期时间3)移除过期时间4)计算并返回剩余生存时间5)过期键的判定5 过期键删除策略1)定时删除2)惰性删除3)定期删除6 过期删除策略的实现1)惰性2)定期删除数据库1 服务器中的数据库本...
2019-12-22 20:53:06
159
原创 redis系列之 对象
对象对象1 对象的类型与编码2 字符串对象1)int2)raw3)embstr3 列表对象1)ziplist2)linkedlist4 哈希对象1)ziplist2)hashtable5 集合对象1)intset2)hashtable6 有序集合对象1)ziplist2)skiplist7 类型检查与命令多态8 内存回收9 对象共享10 对象的空转时长11 总结对象Redis并没有直接使用这些...
2019-12-22 18:41:37
134
原创 redis系列之 压缩列表
压缩列表 (ziplist)压缩列表实现1 压缩列表2 压缩列表节点连锁更新总结压缩列表压缩列表(ziplist)是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么就是小整数值,要么就是长度比较短的字符串,那么Redis就会使用压缩列表来做列表键的底层实现。另外,当一个哈希键只包含少量键值对,并且每个键值对的键和值要么就是小整数值,要么就是长度比较短的字符串,那...
2019-12-21 21:48:35
1348
1
原创 redis系列之 整数集合
整数集合 intset整数集合整数集合的实现升级总结整数集合整数集合(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现。举个例子,如果我们创建一个只包含五个元素的集合键,并且集合中的所有元素都是整数值,那么这个集合键的底层实现就会是整数集合。整数集合(intset)是Redis用于保存整数值的集合抽...
2019-12-21 20:16:45
352
1
原创 redis系列之 跳跃表
跳跃表跳跃表跳跃表的实现1 跳跃表节点2 跳跃表总结跳跃表跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。跳跃表支持平均O(logN)、最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。在大部分情况下,跳跃表的效率可以和平衡树相媲美,并且因为跳跃表的实现比平衡树要来得更为简单,所以有不少程序都使用跳跃表来代...
2019-12-21 19:47:31
125
原创 redis系列之 字典
字典字典一 字典的实现1 哈希表2 哈希表节点3 字典二 哈希算法三 解决键冲突四 rehash哈希表的扩展与收缩五 渐进式哈希总结字典字典,又称为符号表(symbol table)、关联数组(associative array)或映射(map),是一种用于保存键值对(key-value pair)的抽象数据结构。在字典中,一个键(key)可以和一个值(value)进行关联(或者说将键映射为值...
2019-12-21 16:26:29
112
原创 redis系列之 链表
链表链表和链表节点的实现链表节点链表Redis的链表实现的特性链表作用链表和链表节点的实现链表节点typedef struct listNode {struct listNode *prev;//前置节点struct listNode *next;//后置节点;void *value;//节点的值}listNode;链表typedef struct list {listNod...
2019-12-21 12:12:31
162
原创 redis 系列 之 SDS
一 SDSSDS 简介SDS定义SDS与C字符串的区别1 常数复杂度获取字符串长度2 杜绝缓冲区溢出3 减少修改字符串时带来的内存重分配次数空间优化策略4 二进制安全5 兼容部分C字符串函数总结SDS 简介SDS,(simple dynamic string),redis没有直接使用c语言传统的字符串表示(以空字符结尾的字符数组),而是自己构建了SDS的抽象类型,并把SDS用作redis的默认...
2019-12-21 11:24:35
340
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人