- 博客(19)
- 资源 (6)
- 收藏
- 关注
原创 JDK1.7的ConcurrentHashMap的put源码到底是怎么回事
JDK1.7的ConcurrentHashMap的put源码到底是怎么回事相关基本概念ConcurrentHashMap的数据结构存放原理理解UNSAFE操作put方法的流程源码分析ConcurrentHashMap的put方法JDK1.7中的HashMap是采用数组加链表的结构进行存储,并且是线程不安全的,而HashTable为了线程安全就在方法上加了synchronized锁,把整个HashTable锁了起来,多个线程竞争同一把锁,效率不高。综合这两点两个问题,ConcurrentHashMap就来
2021-07-27 11:54:15
309
原创 JDK1.7的HashMap的put源码到底是怎么回事
JDK1.7的HashMap源码到底是怎么回事相关基本概念HashMap的数据结构存放原理位运算符号源码中的成员变量源码分析Entry对象put方法put中的addEntry方法相关基本概念HashMap的数据结构存放原理HashMap底层是由数组和单链表实现的数据结构实现,每次一个新元素需要put进来的时候,首先通过某种运算计算出一个数组下标index,如果数组[index]处已经有元素的话,就在其该元素位置以链表的形式进行存储,否则就直接存放在该数组[index]的位置即可。位运算符号JDK
2021-07-15 17:47:21
275
原创 从0开始入手shiro框架——非web环境的第一个认证程序及源码分析
从0开始入手shiro框架——非web环境的第一个认证程序及源码分析非web环境下的第一个认证程序认证中的关键对象认证流程代码实现认证流程源码分析自定义Realm实现的源码分析上一篇:从0开始入手shiro框架——shiro简介与核心架构 权限管理的概念非web环境下的第一个认证程序认证中的关键对象Subject 主体:访问系统的用户,主体可以使用户,程序等,进行认证的都称为主体Principal 身份信息:是主体进行身份认证的标识,标识必须具备唯一性,如用户名,手机号,邮箱等,一个主体能有多个
2021-07-06 09:25:19
208
原创 从0开始入手shiro框架——shiro简介与核心架构 权限管理的概念
从0开始入手shiro框架——shiro简介与核心架构权限管理的概念什么是权限管理什么是身份认证什么是授权Shiro简介什么是shiroshiro的核心架构非web环境下的第一个认证程序认证中的关键对象认证流程非Web环境下的第一个认证程序在公司里一些权限问题在开发过程中比较麻烦,之前研究过老版本的jeesite,发现里面的权限管理模块部分用到了shiro,总的感觉挺不错的,就把shiro在某站刷了一遍,这类文章记录了从0到springboot整合shiro的全过程,在文章最后放上某站的学习视频连接,可以
2021-07-05 14:31:41
235
原创 从1开始学Java数据结构与算法——树结构的实际应用(二):二叉排序树,平衡二叉树
从1开始学Java数据结构与算法——树结构的实际应用(一):堆排序、赫夫曼树、赫夫曼编码二叉排序树基本介绍二叉排序树的创建和遍历二叉排序树的删除二叉排序树基本介绍二叉排序树BST:对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。如果有相同值,可以将该节点放在左子节点或右子节点二叉排序树的创建和遍历二叉排序树的删除...
2020-02-20 16:07:03
368
原创 从1开始学Java数据结构与算法——树结构的实际应用(一):堆排序、赫夫曼树、赫夫曼编码
从1开始学Java数据结构与算法——堆排序、赫夫曼树、赫夫曼编码、二叉排序树等树结构的实际应用堆排序大顶堆和小顶堆堆排序思路分析堆排序代码实现———————————————————————————————————上一篇博客我们讲了数结构中树的基础部分,那么这一篇博客我们会开始讲数结构的中树的实际应用———————————————————————————————————堆排序在前面的一篇讲...
2020-02-10 20:31:20
502
原创 从1开始学Java数据结构与算法——二叉树、顺序存储二叉树以及线索二叉树
从1开始学Java数据结构与算法——二叉树的介绍与前中后序遍历查找的代码实现数组、链表、树的存储方式分析树的常用术语与二叉树的概念前中后序遍历思路分析代码实现顺序存储二叉树线索化二叉树二叉树的删除数组、链表、树的存储方式分析我们知道数组在内存中的地址是连续的,而链表再内存中的地址不一定是连续的。那么根据这一特点,我们就可以分析一下数组与链表的优缺点。数组的存储方式分析: 优点:通过数...
2020-02-02 23:04:20
375
原创 从1开始学Java数据结构与算法——哈希表的内存布局与代码实现
从1开始学Java数据结构与算法——哈希表的内存布局与代码实现需求引入哈希表的介绍与内存布局思路分析代码实现需求引入我们来看一个实际的需求:有一个公司,当有新员工来报道的时候,要求将该员工的信息加入(id,姓名,年龄等),且当输入该员工的id时,要求查到该员工的所有信息要求:不能使用数据库,尽量节省内存,速度越快越好那么这个时候就可以使用我们的哈希表了,虽然java.util包里有提供哈...
2020-01-31 17:38:47
339
原创 从1开始学Java数据结构与算法——四种查找算法讲解分析与代码实现
从1开始学Java数据结构与算法——四种查找算法讲解分析与代码实现顺序查找二分查找思路分析代码实现二分查找功能完善插值查找公式变化代码实现注意事项:斐波那契(黄金分割法)查找思路分析代码实现在java中,我们常用的查找算法有四种:1)顺序(线性)查找2)二分查找/折半查找3)插值查找4)斐波那契查找顺序查找顺序查找也叫线性查找非常简单,就是对一组数据,去遍历它,挨个比较是否有自己所需...
2020-01-30 21:28:20
525
原创 从1开始学Java数据结构与算法——八种排序算法讲解分析与代码实现
从1开始学Java数据结构与算法——八种排序算法讲解分析与代码实现8种算法简介时间复杂度时间频度8种算法简介排序也称排序算法,指将一组数据,依指定的顺序进行排列的过程排序分类:内部排序和外部排序。内部排序:将需要处理的数据全部加载到内部存储器中进行排序。外部排序:如果数据量过大,比如有10亿条,无法全部加载进内存,那就需要借助外部存储器进行排序其中内部排序又分为如下图几类,其中红色部分的直...
2020-01-29 21:40:05
1040
原创 从1开始学Java数据结构与算法——递归解决迷宫回溯问题和八皇后问题
从1开始学Java数据结构与算法——递归解决迷宫回溯问题和八皇后问题递归介绍与分析案例引入递归机制:递归能解决的问题和规则迷宫回溯问题迷宫回溯问题分析迷宫回溯问题代码实现八皇后问题八皇后问题分析八皇后问题代码实现递归介绍与分析案例引入现在有如下问题,下图是一个很简单的界面,红色区域表示墙,蓝色圆圈表示起始位置,蓝色三角形表示终点位置。那么我们用代码去解决这个问题的话,肯定不能将所有可能的路径...
2020-01-23 23:21:43
737
原创 从1开始学Java数据结构与算法——栈的三种表达式:前中后缀表达式与逆波兰计算器的实现
从1开始学Java数据结构与算法——栈的三种表达式:前中后缀表达式前中后缀表达式前缀表达式及其转化中缀表达式及其转化后缀表达式及其转化逆波兰计算器与波兰计算的实现思路分析代码实现前中后缀表达式下面我们以一个例子来讲三种表达式:(3+4)×5-6前缀表达式及其转化前缀表达式又称波兰表达式,操作数都位于运算符之前将上面的算式转换为前缀表达式为:-×+3456计算机从右至左扫描算式,遇到数字...
2020-01-21 13:46:59
387
原创 从1开始学Java数据结构与算法——栈的实现与应用
从1开始学Java数据结构与算法——栈案例引入与应用场景栈的特点用数组实现栈方法分析思路分析代码实现用栈实现综合计算器思路分析:代码实现存在的问题代码改进可扩展问题用链表实现栈代码实现案例引入与应用场景假如有一个需求:我们需要计算如下的表达式722-5+1-5*3-3,而且只能接收这个字符串,不能单独的一次又一次的输入单个的数字或运算符,应该怎么解决?这里我们就需要用到栈。其他的一些应用场...
2020-01-18 17:55:18
580
原创 从1开始学Java数据结构与算法——用单向环形链表解决Josephu问题
从1开始学Java数据结构与算法——用单向环形链表解决Josephu问题Josephu问题创建单项环形链表的思路分析:详细思路分析:具体代码实现小问题:Josephu问题设编号为1、2…n的n个人围坐一圈,约定编号为k(1<=k<=n)的人开始报数,数到第m个人出列,然后从他的下一位又开始报数,数到第m个人出列,直到所有人出列位为止,由此产生一个出队编号序列。解决方法:采用循环...
2020-01-15 20:48:09
346
原创 从1开始学Java数据结构与算法——单链表与双链表
从1开始学Java数据结构与算法——单链表的使用单链表的特点单链表的代码思路分析方法详细思路分析单链表的代码实现小问题:单链表的特点1.链表是以节点的方式存储的2.每个节点包含data域,用来存放数据;和next域,用来指向下一个节点3.链表的各个节点不一定是连续存储4.链表分为带头节点的和不带头节点的5.单链表在内存中的布局如下图单链表的代码思路分析1.先创建一个节点类,用于表...
2020-01-13 23:36:54
479
原创 从1开始学Java数据结构与算法——用数组实现队列与环形队列
从1开始学Java数据结构与算法——用数组实现队列概念用数组实现方法分析代码实现问题分析:概念队列是一个有序列表,可以用数组或链表来实现。遵循先入先出的原则用数组实现编写一个类,里面有一个成员变量Queue是数组,一个MaxSize表示该数组队列的最大容量,一个rear和front分表表示队尾和对头,且初始值都为-1。当有数据入队的时候,先判断是否队满,即判断队尾是否和MaxSize-1...
2020-01-10 22:07:11
702
原创 从1开始学Java数据结构与算法——稀疏数组
从1开始学Java数据结构与算法——稀疏数组概念处理方法举例说明案例引入问题分析:存在的问题:代码实现为什么说从一开始学呢,这类的博客,是之前有C或C++数据结构基础和Java基础,重新刷一遍Java数据结构时留下的,作为学习笔记放上来,在文章最后放上某站的学习视频连接,可以去看,视频讲的还是非常好的,下面开始进入正题。概念当一个数组中大部分元素为0,或者为同一个值的时候,用一种方法,将零或...
2020-01-08 21:39:47
1057
基于SpringBoot的花艺咨询网站
2022-05-29
基于SpringBoot的宠物商城
2022-05-29
基于SSM的员工事务管理系统
2022-05-29
基于SpringBoot的酒店管理系统
2022-05-29
基于SSM的图书馆预约管理系统
2022-05-29
基于SpringBoot的衣物捐赠与论坛系统
2022-05-29
如何应对额外加码的需求和冷嘲热讽
2022-11-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人