Java技术
-
七张图解锁 Mybatis 整体脉络,让你轻松拿捏面试官
戳上方蓝字“Java知音”关注我 本文笔者计划从全局角度来对Mybatis的整体架构及进行一次回顾和总结,希望能帮助你更加透彻的理解Mybatis。 前言 MyBatis是一款OR…
-
Redis缓存穿透、缓存击穿和缓存雪崩
缓存问题一直以来都是系统优化的热点问题,其中涉及到缓存穿透、缓存击穿、缓存雪崩等多个问题。本文将一一阐述它们的概念及解决方法。 在介绍这三大问题之前,我们需要先了解Redis作为一…
-
java 异步编程 CompletableFuture详解
一.CompletableFuture的定义 CompletableFuture实现了两个接口(如上图所示):Future、CompletionStage。Future表示异步计算…
-
Redis BitMap原理及实际使用介绍
一、介绍 Bitmap,即位图,是一串连续的二进制数组(0和1),可以通过偏移量(offset)定位元素。BitMap通过最小的单位bit来进行0|1的设置,表示某个元素的值或者状…
-
Docker 安装Mysql,Redis教程
一、前言 MySQL和Redis是在日常开发中使用非常广泛的数据库和缓存系统。因为之前安装的mysql和redis只是使用了初始密码,所以遭受了两次勒索病毒的攻击。虽然只是测试使用…
-
生活小贴士:日常问题排查中的常见 bug 及解决方法
前言 在最近开发中,遇到了几个小问题,在此记录下,以便之后遇到相似问题能快速找到解决办法,节约时间,提高效率。 一、雪花Id(snowflake)主键(Long) ,前端丢失精度原…
-
面试官问:说一说高并发场景下的接口请求合并方案?|
一、请求合并功能介绍 1、常见的使用场景: 在我们平时业务中,经常会遇到一些情况,请求频率很高,需要频繁请求第三方接口,或者需要频繁操作数据库。 比如,如下几个例子: (1)电商系…
-
Java8新特性之Optional正确理解和用法
一、前言 Optional在Java 8中引入,目的是解决 NullPointerExceptions的问题,Optional 是一个可以为null的容器对象。它可以保存类型T的值…
-
SpringBoot 如何优雅的进行全局异常处理?
一、前言 在Java中处理异常并不是一个简单的事情,不仅仅初学者很难理解,即使一些有经验的开发者也需要花费很多时间来思考如何处理异常,包括需要处理哪些异常,怎样处理等等。 最近在需…
-
深入理解Java中的@EventListener注解及其应用场景
一、前言 @EventListener 是 Spring 框架提供的一种事件驱动编程的实现方式,在 Spring 4.2 版本之后出现。它是一种基于观察者设计模式的事件监听机制,用…
-
Java后端防止频繁请求、重复提交的方案设计
一、前言: Java接口防重点击是指在接口调用时,防止同一接口在短时间内被重复点击或请求,以防止系统资源被浪费、系统性能下降,以及防止恶意攻击。 在实现Java接口防重点击时,可以…
-
Spring Boot集成Caffeine缓存介绍
一、前言 缓存在我们的日常开发中具有极高的使用频率,当一个系统遇到性能瓶颈的时候往往会考虑使用缓存来解决问题。 对于那些访问频率高、更新频率低的数据,我们可以考虑把查询结果保存起来…
-
Java 泛型详解(超详细的java泛型方法解析)
一、简介 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 是一种在编译时期进行类型检查和类型推断的机制,它使得我们能够编写更加通用和类型安全的代码。泛型最主…
-
@EventListener注解是干什么的
@EventListener 是 Spring Framework 4.2 引入的一个注解,用于将方法声明为事件处理器,可以用于监听和响应应用程序中发布的事件。 使用 @…
-
Elasticsearch集群安装
Elasticsearch集群安装 1 先决条件 1.1 JDK Elasticsearch由Java构建,其内置JDK,官方推荐使用内置JDK来运行Elasticsearch。如…
-
Elasticsearch针对文档Search与CRUD操作的执行流程
Elasticsearch针对文档Search与CRUD操作的执行流程 在Elasticsearch中,针对文档的操作主要分为Search与CRUD两种。 1 Search 在分布…