HashMap集合--基本操作流程的源码可视化
本文主要包含:HashMap 插入过程、扩容过程、查询过程和删除过程的源码可视化
文章对应的视频连接:https://www.bilibili.com/video/BV1wM3KzaE3d/
1. 操作流程
1.1. 插入过程(put(K key, V value))
插入流程主要涉及四种操作:扩容(首层扩容和阈值扩容)、单节点插入(无哈希冲突的情况)、链表遍历插入(冲突节点不 ...
Java中的队列与参数传递
Java中的队列数据结构
定义:
队列(Queue)是一种先进先出(FIFQ)的线性数据结构
基本性质:
先进先出
主要操作
2.1 入队:向队尾插入元素
2.2 出队:从队首移除元素
只允许在队首删除,在队尾插入
Queue 继承 Collection
常见用方法:
注意: add、remove、element操作时可能抛异常(队列为满或空)
实现类:
Linke ...
天天用lock,不好奇他到底怎么工作的吗 —从ReentrantLock 到AQS
新手学习,若有不对,欢迎大佬 调教🥰🥰🥰
ReentrantLock
我们经常用的 *ReentrantLock*是干什么的呢 我认为这是一个前台/门面(类似设计模式中的门面模式)根据我们的入参创建一个FairSync OR NonfairSync 。sync 担任锁的lock()和release()。
private final Sync sync;
public ReentrantLock() {
syn ...
补充:问题:CORS ,前后端访问跨域问题
补充:问题:CORS ,前后端访问跨域问题
我这边的解决方法是:
myAxios.defaults.withCredentials = true; // 配置为true,表示前端向后端发送请求的时候,需要携带上凭证cookie
整体的:
import axios from "axios";
// axios.defaults.withCredentials = true; // 允许携带凭证
// const isDev = process.env.NODE_EN ...
QueryDsl动态排序的实现
写在前面,最近项目持久层框架需要使用JPA+QueryDsl,而网上相关的资料特别少。我将在JPA和QueryDsl标签下记录学习过程中遇到的问题和解决方案,希望能帮到有需要的小伙伴。
本文介绍使用QueryDsl实现动态排序的方法,即前端动态地向后端传递排序字段和排序规则,后端返回相应的结果。
步骤一
在项目的util包下创建一个 ...
一次并发请求导致图片错乱的排查与修复
在开发过程中,我们时常会遇到与并发请求相关的问题。最近,我在实现一个图片预览功能时,发现多个并发请求时会引发资源加载错乱的问题。经过排查,最终锁定问题与 Spring Bean 的作用域设置有关。本文将详细记录问题的发现、分析及解决过程。
问题发现
我需要实现的功能是在用户管理的表格中显示用户头像的预览图。前端 ...
深入研究使用DozerMapper复制List<Ojbect>前后元素类型不一致的问题
背景
某项目某个功能点是接受前端传参,将其存入MongoDB。这个传参的核心数据是一个二维数组List<List<Object>>,可以放字符串、整型,也可以放null。
在测试时发现,前端明明传的是整数,查出来却变成了字符串,比如1234变成了"1234"。经过排查发现,问题出在公司内部使用的一个Bean复制工具类,这个工具类简单封装了Dozer ...
国产化PDF处理控件Spire.PDF教程:在Java中读取PDF,提取文本、图片和表格
在数据驱动的现代开发中,高效处理 PDF 文档已成为 Java 开发者不可或缺的核心能力。无论是处理各类发票扫描件、业务分析报告,还是包含丰富图表的技术文档,掌握 Java 版的 PDF 解析技术都将大幅提升数据处理效率,充分释放文档中的商业价值。
E-iceblue旗下Spire系列产品,是文档处理组件领域的佼佼者,支持国产化信创。 ...
好用的文档工具👉smart-doc
好用的文档工具👉smart-doc
转载请注明出处https://www.cnblogs.com/funnyzpc/p/18932813
smart-doc不得不说是一款非常好用的文档工具,尤其是它几乎不与项目耦合的特性十分值得所有java开发人员日常使用它~
之前及现在用的
我从事开发以来,用过形形色色各式各样的文档工具,比如一开始的用
01. word或excel
这种文档十 ...
Viggle Ai优质视频创作指南
Viggle Ai视频创作工具(目前全球最好),操作简单、玩法多样、速度快且效果极佳,堪称“爆款视频打造神器”。
【带视频的原文链接】:
Viggle Ai优质视频创作指南
【前戏】
如果你不知道Viggle Ai是什么?请阅读:
Viggle Ai一篇吃透!
如果你不知道Viggle Ai能做什么?请阅读:
Viggle Ai视频创作最佳应用场景?
【正题】
如 ...
11-2 MySQL 数据库对象编写建议(参考)
11-2 MySQL 数据库对象编写建议(参考)
@目录11-2 MySQL 数据库对象编写建议(参考)1. 数据库对象编写建议/推荐1.1 关于库1.2 关于表、列1.3 索引1.4 SQL 编写2. 最后:
这篇文章是我蹲在《尚硅谷》-康师傅博主家的 WiFi 上(不是),连夜 Ctrl+C / V 俩的镇站神文。
这篇转载只是为了,跟大家分享好内容,没有任何商业用途 ...
替代 Postman!一款开源自托管的在线 API 接口管理平台!
大家好,我是 Java陈序员。
在企业开发中,经常涉及到 API 接口管理,常常会借助一些工具来进行接口请求调试,如 Postman 就是一款十分受欢迎的 API 接口调试工具。
今天,给大家介绍一款开源自托管的在线 API 接口管理平台,可替代 Postman!
关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典 ...
一个static关键字引发的线上故障:深度剖析静态变量与配置热更新的陷阱
引言:一个看似无害的修改
"这不可能有问题!" 我盯着屏幕上的代码变更,反复确认那个仅仅增加了static关键字的修改。
事情的起因是我们需要上线一个新的HTTP接口调用功能,为了便于测试和生产环境切换,我们使用了配置中心来管理目标URL。原本的设计是通过Config.getOrDefault("url","http://www.seven97.com")实现动态获 ...
SpringMVC流式传输媒体数据
借助Spring的ResourceHttpRequestHandler可以实现媒体数据的传输,比如在线播放视频、预览图片等。
目前已知Spring Boot传输视频流的方法
读取整个视频文件,然后把文件流写入HttpServletResponse的OutputStream。
(此方法可行,但是需要消耗较多的服务器资源,且客户端需要下载整个视频才能播放)
使用HTTP的Range实现 ...
使用IDEA创建Spring Boot 3项目(gradle篇)
tips:按照以下步骤创建项目可少走弯路
本教程测试时使用IDEA 2022.2.3,使用其他版本的操作应该也类似
父项目名:parent-project
后端子模块名:server
前端子模块名:web
请根据实际需要进行调整,如使用其他的项目名或创建多个子模块
新建父项目
选择Spring Initializr,填写项目名(parent-project)等信息,注意:S ...
天才用户取用户名为 null,害我熬夜查到两点…….
大家好,我是R哥。
前几天刷到一篇帖子:
标题直接让我笑出声。。
这年头,像字符串 "null"、"undefined"、空格、特殊符号这些聪明的用户名,绝对能让你当场沉默三秒,然后通宵 debug 八小时。
比如用户注册时输入以下内容:
{
"username": "null",
"password": "123456"
}
如果你的后 ...
10-2 MySQL 索引优化与查询优化
10-2 MySQL 索引优化与查询优化
@[toc]
这篇文章是我蹲在《尚硅谷》-康师傅博主家的 WiFi 上(不是),连夜 Ctrl+C / V 俩的镇站神文。
这篇转载只是为了,跟大家分享好内容,没有任何商业用途。如果你喜欢这篇文章,请一定要去原作者 B站《尚硅谷-MySQL从菜鸟到大牛》看看,说不定还能发现更多宝藏内容呢!
7. filesort算法 ...
PDF处理控件Aspose.PDF教程:在 Java 中删除 PDF 页面
您是否需要使用 Java 从PDF文档中删除特定页面?无论您是要清理空白页、删除机密部分,还是仅仅在分发前调整内容,以编程方式操作 PDF 页面的能力都将大有裨益。本指南将向您展示如何借助Aspose.PDF仅用几行代码删除不需要的页面。让我们深入了解如何使用 Java 从 PDF 文档中删除页面。
Aspose.PDF最新版下载,请联系Aspos ...
Elasticsearch 入门教程!
1. Elasticsearch 概述
1.1 Elasticsearch 是什么
The Elastic Stack, 包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。
Elaticsearch,简称为 ES,ES 是一个开源的高扩展的分布式全文搜索引擎,是整个 Elast ...
剑指offer-8、跳台阶
题⽬
⼀只⻘蛙⼀次可以跳上1级台阶,也可以跳上2级。求该⻘蛙跳上⼀个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
示例1
输⼊:2
输出:2
解释:⻘蛙要跳上两级台阶有两种跳法,分别是:先跳⼀级,再跳⼀级或者直接跳两级。因此答案为2
示例2
输⼊:7
输出:21
示例3:
输⼊:0
输出:0
思路及解答
动态规 ...