![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java学习
文章平均质量分 56
冷月追星
专注研究技术
展开
-
多线程情况下,jdk1.7的HashMap不安全情况解读
目的:这篇文章纯以笔者的理解解读面试中一道高频题目——HashMap是线程安全的吗?如果不安全,为什么?HashMap的底层数据结构是什么?首先在jdk1.7中,HashMap的底层结构为数组+链表这一点毫无疑问,至于为什么选择数组,是由于数组属于顺序访问的集合,时间复杂度为O(1),我们通过对key进行hash散列后,再进行位与运算,可以快速的定位到key值所对应的下标,至于很多人会问为什么采用位与运算而不用取模元素,这一点其实跟位与的优秀性能有关系,试想一下,一个HashMap有几十万条数据,我们需原创 2020-07-12 19:07:23 · 231 阅读 · 1 评论 -
接口幂等性的实现方式
引言在项目开发的过程中,有时候类似于创建订单的接口,因为网络延迟的缘故,或者用户操作的原因,会导致对接口发起重复请求,而重复的请求不是我们想要的,为了防止这种情况发生,通常会对接口的明灯性作出要求,即:一次请求和多次请求的效果是一样的。如何限制?首先需要在前端做限制,比如按钮变灰、或按钮不可点击,也就是说,后面才会交给后端限制,在后端一般会有如下限制:1、在数据库中建立唯一索引字段,保证插入的数据是唯一的一条2、利用token检验,前端每次请求接口之前,先从后端获取一个token,在接下原创 2020-06-16 22:10:54 · 533 阅读 · 0 评论 -
SpringBoot整合Shiro实现权限管理
Shiro简介Apache Shiro是一个强大且易用的java认证、授权、加密和会话管理的框架,主要有三个核心的组件:Subject,SecurityManager和Realms。Subject:不仅指人,还可以是第三方进程、后台账户等,它表示跟系统或软件交互的东西。SecurityManager:它是Shiro框架的核心组件,管理组件实例和提供安全服务的各种管理。Realm:Shiro与应用数据交互的桥梁,可以理解为spring中的dao层。创建SpringBoot项目在IDEA中选择Fil原创 2020-05-29 17:05:49 · 273 阅读 · 0 评论