0%

常见命令

1
2
3
4
5
6
7
8
redis-cli #链接客户端
select dbnum #选择数据库
flushdb #清除当前数据库数据
flushall #清除所有数据库数据
scan #游标扫描匹配的key
KEYS # 查找所有符合给定模式 pattern 的 key
dbsize #返回当前数据库的 key 的数量
del # 删除给定的一个或多个 key
阅读全文 »

HashMap区别

JDK7和JDK8中的HashMap底层数据结构有什么区别?

1
2
3
JDK7:数组 + 链表
JDK8:数组 + 链表 + 红黑树
链表包括单向链表和双向链表,双线链表主要是为了链表操作方便,在插入、扩容链表转红黑树的过程中使用
阅读全文 »

HashMap

问题:JDK1.7中,HashMap是通过什么原理实现的呢?

答案:数组+链表

问题:什么叫哈希碰撞(哈希冲突)?

不同的键值通过哈希函数运算得到相同的哈希值,解决哈希冲突的方式有开放寻址法和链表法,ThreadLocalMap由于其元素个数较少,采用的是开放寻址法,而HashMap采用的是链表法来解决哈希冲突,即所有散列值相同的元素都放在相同槽对应的链表中(也就是数组+链表的方式)。

阅读全文 »

HashMap

AVL树:

在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为1,所以它也被称为高度平衡树。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。

特点:

1.本身首先是一棵二叉搜索树。

2.带有平衡条件:每个结点的左右子树的高度之差的绝对值(平衡因子)最多为1。

也就是说,AVL树,本质上是带了平衡功能的二叉查找树(二叉排序树,二叉搜索树)。

阅读全文 »

JDK8新特性——时间类

为什么需要使用新的时间类

1、Date如果不格式化,打印出的日期可读性差【Tue Sep 10 09:34:04 CST 2019】;

2、使用 SimpleDateFormat 对时间进行格式化,但 SimpleDateFormat 是线程不安全的;

3、获取时间一些参数需要转换为calendar类获取……

阅读全文 »

FilterSecurityInterceptor

介绍

FilterSecurityInterceptor是过滤链的最后一环,一个请求完成了认证,且没有抛出异常之后就会到达FilterSecurityInterceptor所负责的鉴权部分,也就是说鉴权的入口就在FilterSecurityInterceptor

​ 它实现了Filter接口,我们一般直接继承这个过滤器或者继承他的父类,目的是为了注入自定义的授权管理器AccessDecisionManager、和权限元数据FilterInvocationSecurityMetadataSource

​ 它是在WebSecurityConfigurerAdapterinit()里配置的。

阅读全文 »

过滤器链介绍

spring security采用的是责任链的设计模式,它有一条很长的过滤器链。

客户端向服务端发送请求,然后应用根据请求的 URI 的路径来确定该请求的过滤器链(Filter)以及最终的具体 Servlet 控制器(Controller

阅读全文 »

运行时数据区域

Java 虚拟机在执行 Java 程序过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随虚拟机进程的启动而存在,有的区域则依赖用户线程的启动和结束而建立和销毁。

memory-1

阅读全文 »