浅析 ArrayList

2023-12-19
阅读 8 分钟
614
ArrayList是一个使用List接口实现的Java类。顾名思义,Java ArrayList提供了动态数组的功能,其中数组的大小不是固定的。它实现了所有可选的列表操作,并允许所有元素,包括null。
封面图

自定义过滤器配置 Shiro 认证失败返回 json 数据

2023-10-27
阅读 6 分钟
723
​Shiro​​​权限框架认证失败默认是重定向页面的,这对于前后端分离的项目及其不友好,可能会造成请求404的问题。现在我们自定义过滤器实现认证失败返回json数据。
封面图

自定义MyBatis拦截器更改表名

2023-10-23
阅读 5 分钟
837
自定义MyBatis拦截器可以在方法执行前后插入自己的逻辑,这非常有利于扩展和定制 MyBatis 的功能。本篇文章实现自定义一个拦截器去改变要插入或者查询的数据源。
封面图

浅析斐波那契数列在代码中的应用

2023-10-13
阅读 5 分钟
544
斐波那契数列在代码中的应用是比较常见的,下面让我们来了解下一个数学上的数列在代码中会有哪些应用。了解斐波那契,可以给我们提供解决某些问题的思路,优化解决问题的方法。
封面图

探索抽象同步队列 AQS

2023-09-25
阅读 6 分钟
690
AbstractQueuedSynchronizer抽象同步队列简称AQS,它是实现同步器的基础组件,并发包中锁的底层就是使用AQS实现的。大多数开发者可能永远不会直接使用AQS,但是知道其原理对于架构设计还是很有帮助的。AQS是Java中的一个抽象类,全称是AbstractQueuedSynchronizer,即抽象队列同步器。它定义了两种资源共享模式:独占式...
封面图

探索 Java 线程的创建

2023-09-11
阅读 8 分钟
2.8k
在并发编程中我们为啥一般选用创建多个线程去处理任务而不是创建多个进程呢?这是因为线程之间切换的开销小,适用于一些要求同时进行并且又要共享某些变量的并发操作。而进程则具有独立的虚拟地址空间,每个进程都有自己独立的代码和数据空间,程序之间的切换会有较大的开销。下面介绍几种创建线程的方法,在这之前我们...
封面图

SQL 查询的执行顺序

2023-09-04
阅读 3 分钟
763
了解 SQL 查询的执行顺序对我们解决一些问题很有帮助,有时我们可能会疑惑为什么不能对分组的结果进行筛选这样类似的问题?之前一直不是理解这个问题,在了解了SQL 查询的执行顺序之后这个问题也就迎刃而解。在我们对 SQL 查询语句进行分析优化时,掌握执行顺序也是有一定帮助的。
封面图

响应式编程——初识 Flux 和 Mono

2023-08-28
阅读 4 分钟
5.3k
Flux 和 Mono 都是数据流的发布者,使用 Flux 和 Mono 都可以发出三种数据信号:元素值,错误信号,完成信号;错误信号和完成信号都代表终止信号,终止信号用于告诉订阅者数据流结束了,错误信号终止数据流同时把错误信息传递给订阅者。
封面图

对 JDK8 新出的Optional类的探索与思考

2023-08-23
阅读 8 分钟
692
所有的 Java 程序员基本都会遇到 NullPointerException 异常,一般处理这个问题可能不会是很难,但是有时去排查到底是哪引起的会耗费很长时间很是麻烦。最近了解到 JDK1.8 新增加了一个 Optional 类可以避免一些 NullPointerException 异常,下面让我们一起去了解一下它吧。
封面图

CentOS7.9中的Glibc2.17源码编译升级到Glibc2.31

2023-08-18
阅读 2 分钟
1.9k
在Liunx系统CentOS7.9的中部署项目遇到了Glibc版本过低的问题,使用yum安装最高只能安装Glibc2.17并不能满足要求,本文介绍了如何用源码编译的方法升级Glibc的版本。
封面图