图解Java经典算法冒泡选择插入希尔排序的原理与实现

目录一、冒泡排序1、基本介绍2、代码实现二、 选择排序1、基本介绍2、代码实现三、插入排序1、基本介绍2、代码实现四、希尔排序1、基本介绍2、代码实现(交换排序)3、代码实现...

2022-12-30

Java设计模式之工厂方法和抽象工厂

全网最详细的工厂设计模式,本文主要是创建型设计模式中的工厂方法和抽象工厂,先由传统实现方式引出问题,接着对代码改进到简单工厂,后扩展到工厂方法,最后是抽象工厂模式,文中包括...

2022-12-30

SpringBoot注入自定义的配置文件的方法详解

目录一、简介二、代码实践2.1 通过@value注解实现参数加载2.2 通过@ConfigurationProperties注解实现参数加载2.3 通过@PropertySource注解实现配置文件加载2.4 通过自定义...

2022-12-30

java中使用interrupt通知线程停止详析

目录普通情况停止线程在可能被阻塞情况下停止线程在每次迭代后都阻塞的情况下停止线程两种停止线程最佳方法总结前言:使用 interrupt 来通知线程停止运行,而不是强制停止!普通...

2022-12-30

一文带你了解Java创建型设计模式之原型模式

目录原型模式概述优缺点应用场景主要角色原型模式的基本使用创建原型接口创建具体需要克隆对象使用JDK自带原型接口的使用浅克隆与深度克隆浅克隆深度克隆单例的破坏原型模...

2022-12-30

Java hibernate延迟加载get和load的区别

目录前言一.load加载方式二、get加载方式三、使用get和load时的一些小问题前言在hibernate中我们知道如果要从数据库中得到一个对象,通常有两种方式,一种是通过session.get()...

2022-12-30

Spring面向切面编程AOP详情

目录1. 面向切面编程2. AOP核心概念3. AOP的实现4. Spring 对AOP支持4.1 支持@Aspect4.2 声明一个切面4.3 声明一个切入点4.4 声明增强5. 用AOP实现日志拦截5.1 一般的实现5...

2022-12-30

深入了解Java包与访问控制权限

目录1、包的概念及使用(1)基本概念(2)import 语句(3)系统常见包(4)Java 新特性 – 静态导入2、jar命令的使用3、访问控制权限private访问权限default(默认)访问权限protected访问...

2022-12-30

Java接口返回json如何忽略特定属性

目录经常遇到的问题不完美的解决方案通过SimplePropertyPreFilter方式(Json返回)场景一: 只保留name和sex字段场景二: 过滤掉email和phone字段@ResponseBody返回json如何忽略...

2022-12-30

Apache SkyWalking 修复TTL timer 失效bug详解

目录正文SkyWalking OAP 角色SkyWalking OAP 集群Data TTL timer 配置DataTTLKeeperTimer 定时任务Bug 产生的原因解决 Bug正文近期,Apache SkyWalking 修复了一个隐藏了近4...

2022-12-30

Java快速排序与归并排序及基数排序图解示例

目录一、快速排序1、基本介绍2、代码实现二、归并排序1、基本介绍2、代码实现三、基数排序1、基本介绍2、代码实现一、快速排序1、基本介绍以上面的数组为例分析快速排序。...

2022-12-30

软件开发基础之设计模式概述

成为一名优秀的软件开发工程师,设计模式的重要性不言而喻,本章节是对设计模式的前置知识概述,涉及概念性较大,读者可在设计模式学习过程中参阅本文档。在第一章节,主要介绍软件设...

2022-12-30

从 PageHelper 到 MyBatis Plugin执行概要及实现原理

目录一、背景二、MyBatis 执行概要图三、MyBatis 核心对象介绍四、Plugin 实现原理1、定义 Plugin2、注册拦截器3、执行拦截器4、Plugin 的动态代理总结一、背景在很多业务...

2022-12-30

java自旋锁和JVM对锁的优化详解

目录背景好处AtomicLong的实现getAndIncrement方法实验缺点适用场景JVM对锁做了哪些优化?自适应的自旋锁锁消除锁粗化偏向锁/ 轻量级锁/ 重量级锁锁升级背景先上图由此可见,非...

2022-12-30

初探Java内部类的使用

目录一、成员内部类二、静态内部类三、匿名内部类之前对内部类的概念不太清晰,在此对内部类与外部类之间的关系以及它们之间的调用方式进行一个总结。Java内部类一般可以分为...

2022-12-30

Java结构型设计模式中建造者模式示例详解

目录建造者模式概述角色优缺点应用场景基本使用创建产品类创建建造者类使用链式写法创建产品类与建造者类使用建造者模式概述建造者模式(Builder Pattern)属于创建型模式。...

2022-12-30

Java使用正则表达式进行匹配且对匹配结果逐个替换

前言:Java使用正则表达式进行匹配,并对匹配结果逐个进行替换下面代码示例,是将 下划线 替换成随机生成的 uuidpublic class TestUtil { public static void main(String[] a...

2022-12-30

基于Redis分布式锁Redisson及SpringBoot集成Redisson

目录- 分布式锁需要具备的条件和刚需- Redisson使用- SpringBoot集成Redisson- 分布式锁需要具备的条件和刚需独占性:OnlyOne,任何时刻只能有且仅有一个线程持有高可用:若redis...

2022-12-30

SpringBoot集成redis与session实现分布式单点登录

目录单点登录 SSO(Single Sign On)什么是单点登录?实现方式开发技术单点登录实现流程实现案例看效果前言:由于考虑到cookie的安全性问题,就有了下面这个版本的sso单点登录 SSO(Sin...

2022-12-30

浅析Java中的动态代理

目录代理常见功能代理模式的组成代理模式分类动态代理实现的技术JDK 代理的实现步骤CGLIB 代理实现步骤代理常见功能日志代理数据库访问的事务代理代理模式的组成抽象主题:通...

2022-12-30

Java模拟实现扑克牌洗牌和发牌的示例代码

目录一. 需求二. 全局代码poker.javapokers.java三. 设计分析1. 设计一张扑克牌2. 得到一副新牌3. 洗牌4. 发牌一. 需求设计一副新的的扑克牌, 4个花色(♥, ♠,...

2022-12-30

java利用easyexcel实现导入与导出功能

目录前言1先添加依赖2批量插入数据3创建需要导出数据实体类4创建一个类ExcelListener5实现下载excel6控制器添加我们的导入操作代码7导出效果如图8导入直接调用前言poi的解...

2022-12-30

Java中缀表达式转后缀表达式流程详解

目录一、栈1、栈的基本介绍2、栈的底层实现二、中缀表达式转后缀表达式1、拆解中缀表达式2、中缀转后缀的算法3、中缀转后缀代码解析4、对后缀表达式进行计算一、栈1、栈的...

2022-12-30

使用Spring Boot进行单元测试详情

目录前言使用 Spring Boot 进行测试系列文章依赖项不要在单元测试中使用Spring创建一个可测试的类实例属性注入是不好的提供一个构造函数减少模板代码使用Mockito来模拟依赖...

2022-12-30

Java结构型设计模式中代理模式示例详解

目录代理模式分类主要角色作用静态代理与动态代理的区别静态代理的基本使用创建抽象主题创建真实主题创建代理主题客户端调用JDK动态代理的基本使用创建抽象主题创建真实主...

2022-12-30

Java结构型设计模式之享元模式示例详解

目录享元模式概述目的应用场景优缺点主要角色享元模式结构内部状态和外部状态享元模式的基本使用创建抽象享元角色创建具体享元角色创建享元工厂客户端调用总结享元模式实现...

2022-12-30

Java详细介绍单例模式的应用

目录一、什么是单例模式二、实现单例模式的几种方法1. 懒汉模式(线程不安全)2. 懒汉模式(线程安全)3. 饿汉模式一、什么是单例模式单例模式(Singleton Pattern)是 Java 中最简单的...

2022-12-30

一文搞懂Java中的日期类

目录一、日期类1.1 第一代日期类1.2 第二代日期类Calendar1.3 第三代日期类一、日期类在程序的开发中我们经常会遇到日期类型的操作,Java对日期类型的操作提供了很好的支持。...

2022-12-30

Java创建型设计模式之抽象工厂模式(Abstract Factory)

目录抽象工厂模式概述产品等级结构与产品族优缺点主要角色抽象工厂模式的基本使用创建抽象产品创建具体产品创建抽象工厂创建具体工厂客户端执行抽象工厂模式概述抽象工厂模...

2022-12-30

SpringBoot+thymeleaf+ajax实现局部刷新详情

目录前言什么是局部刷新?优势和弊端?实现流程案列前言什么是局部刷新?简而言之,就是当我发送一个请求到后端后拿到数据后返回当前 页面不会对整个页面进行重载而只对当前请求的...

2022-12-30

SpringBoot实现滑块验证码验证登陆校验功能详解

目录前言一、实现效果二、实现思路三、实现步骤1. 后端 java 代码1.1 新建一个拼图验证码类1.2 新建一个拼图验证码工具类1.3 新建一个 service 类1.4 新建一个 controller...

2022-12-30

Java实现批量导出导入数据及附件文件zip包

目录前言-应用场景一、导出ZIP包1. 列表数据导出到本地excel文件2. 下载附件信息3. 生成压缩文件(浏览器下载)4. 删除临时目录二、导入ZIP包1. 上传zip包,解压到临时目录2. 读...

2022-12-30

Java多线程模拟银行系统存钱问题详解

目录一、题目描述二、解题思路三、代码详解多学一个知识点一、题目描述题目:模拟一个简单的银行系统,使用两个不同的线程向同一个账户存钱。实现:使用特殊域变量volatile实现同...

2022-12-30

入门到精通Java SSO单点登录原理详解

目录1. 基础概念2. 单点登录3. CAS 流程4. OAuth 流程5. CAS和OAuth的区别1. 基础概念SSO单点登录(Single sign-on)所谓单点登录就是在多个应用系统中,用户只需登录一次就可以...

2022-12-30

Spring AOP实现打印HTTP接口出入参日志

目录前言思路1.编写一个HTTP接口2.编写一个AOP日志配置3.结果测试前言最近在维护一个运营端的系统,和前端联调的过程中,经常需要排查一些交互上的问题,每次都得看前端代码的传...

2022-12-30

Java设计模式之适配器模式

本文通过老王使用纸质书籍阅读小王使用电子书籍的故事,详细说明设计模式中的结构型设计模式之适配器模式,分别对对象适配器和类适配器代码实现,最后为了加深理解,会列举适配器设...

2022-12-30

Java文件与IO流操作原理详细分析

目录一、文件1、基本解释2、常用的文件操作3、获取文件相关信息4、目录操作和文件删除二、IO流原理及分类1、IO流原理2、流的分类3、IO流体系图一、文件1、基本解释(1)什么是...

2022-12-30

Spring AOP实现接口请求记录到数据库的示例代码

目录1.引入AOP依赖2.创建日志记录表3.日志实体类4.Dao+Mapper+service5.自定义注解6.操作日志切面类7.使用1.引入AOP依赖 <dependency> <groupId>org.spring...

2022-12-30

SpringBoot bean依赖属性配置详细介绍

创建实体类@Datapublic class Cat { private String name; private Integer age;}@Datapublic class Mouse { private String name; private Integer age;}配置...

2022-12-30

ExecutorService Callable Future多线程返回结果原理解析

目录正文简单例子异步执行内部实现run方法逻辑FutureTask的run方法set(result)方法正文在并发多线程场景下,存在需要获取各线程的异步执行结果,这时,就可以通过ExecutorService...

2022-12-30

SpringBoot日程管理Quartz与定时任务Task实现详解

目录1 Quartz核⼼概念Springboot整合Quartz1.导⼊springboot整合Quartz的starter2.定义任务Bean3.创建Quartz配置类2. Task1.开启定时任务功能2.定义Bean3.配置文件任务系统...

2022-12-30

Springboot内嵌tomcat应用原理深入分析

目录默认Servlet容器切换Servlet容器内嵌tomcat自动配置原理tomcat自动配置类tomcat工厂类何时被调用onRefresh()finishRefresh()springboot版本:2.2.9.RELEASE。默认Servlet...

2022-12-30

Spring boot 运用策略模式实现避免多次使用if

目录前言环境配置实现目标准备策略接口和具体实现策略类支付策略接口微信支付策略类支付宝支付策略类准备支付策略上下文Context和支付策略工厂类支付策略工厂类支付策略枚...

2022-12-30

详解如何在Java中加密和解密zip文件

目录依赖压缩一个文件压缩多个文件压缩一个目录创建一个分割的压缩文件提取所有文件提取单个文件总结依赖让我们先把 zip4j 依赖关系添加到我们的 pom.xml 文件中。<depende...

2022-12-30

springboot中使用mybatisplus自带插件实现分页的示例代码

目录springboot中使用mybatisplus自带插件实现分页1.导入mybatisplus分页依赖2.添加MybatisPlusConfig配置类3.测试分页springboot中使用mybatisplus自带插件实现分页1.导入...

2022-12-30

SpringBoot @RestControllerAdvice注解对返回值统一封装的处理方法

目录一. 需求场景二. 前期准备三. 使用@RestControllerAdvice对响应进行增强四. 效果4.1 直接返回List4.2 标记NotControllerResponseAdvice注解后返回List4.3 直接返回字符...

2022-12-30

KotlinScript构建SpringBootStarter保姆级教程

目录引言一 如何用 Kotlin 写一个简单 SpringBoot Starter1 分析2 简单案例设计3 代码实现依赖项配置属性声明类: xxxProperties业务 Bean配置类: xxxAutoConfigurationspri...

2022-12-30

JDK19新特性使用实例详解

目录前提新特性列表新特性使用详解Record模式Linux/RISC-V移植外部函数和内存API虚拟线程向量APIswitch匹配模式结构化并发前提JDK19于2022-09-20发布GA版本,本文将会详细介...

2022-12-30

SpringBoot整合Kafka工具类的详细代码

目录kafka是什么?应用场景kafka是什么?Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费...

2022-12-30

Java实现在线五子棋对战游戏(人机对战)

目录1. 人机对战1.1 演示1.2 评分表1.3 算法思路1.4 具体代码1. 人机对战要增添一个人机对战的模块, 最大的难点就是如何让人机知道下在什么位置是最好的, 不仅要具备进攻的...

2022-12-30
返回顶部
顶部