目录 对数组和集合进行排序是 Java 8 lambda 令人惊奇的一个应用,我们可以实现一个 Comparators 来实现各种排序。 看下面案例: static class Person { final String firstName; final String lastName; Perso...
网站建设
图解Java排序算法之堆排序
目录 预备知识 堆排序 堆 堆排序基本思想及步骤 再简单总结下堆排序的基本思路: 总结 预备知识 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序...
图解Java排序算法之快速排序的三数取中法
目录 基本步骤 三数取中 根据枢纽值进行分割 代码实现 总结 基本步骤 三数取中 在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。在此我们...
图解Java排序算法之希尔排序
目录 基本思想 代码实现 总结 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩...
Java面试为何阿里强制要求不在foreach里执行删除操
小二听完就面露喜色,因为两年前,也就是 2021 年,他在《Java 程序员进阶之路》专栏上的第 63 篇看到过这题。 PS:star 这种事,只能求,不求没效果,铁子们,《Java 程序员进阶之路》...
Java8 使用工厂方法supplyAsync创建CompletableFuture实例
目录 使用工厂方法 supplyAsync创建 CompletableFuture 对比 对CompletableFuture async的理解 目前为止我们已经了解了如何通过编程创建 CompletableFuture 对象以及如何获取返回值,虽然看起来这些操作...
Java京东面试题之为什么HashMap线程不安全
目录 01、多线程下扩容会死循环 02、多线程下 put 会导致元素丢失 03、put 和 get 并发时会导致 get 到 null 01、多线程下扩容会死循环 众所周知,HashMap 是通过拉链法来解决哈希冲突的,也...
Java8 如何正确高效的使用并行流
目录 正确使用并行流,避免共享可变状态 高效使用并行流 流的数据源和可分解性 java 并行计算的几点实践总结 正确使用并行流,避免共享可变状态 错用并行流而产生错误的首要原因...
java去除数组重复元素的四种方法
方法1: 需要一个存储去重后元素的数组,然后两层循环,外层遍历原数组,内容逐个判断是否和之后的元素重复,然后再提出来存入新的数组。方法System.arraycopy(被复制的数组,起始下...
java实现随机验证码图片生成
本文实例为大家分享了java生成随机验证码图片的具体代码,供大家参考,具体内容如下 1.controller /** * 获取随机数验证码图片 * * @param request HttpServletRequest * @param response HttpServletRespons...
Java并行执行任务的几种方案小结
目录 背景 改进方案 注意点和区别 java并行执行任务demo 背景 最近在排查生产环境问题,发现商品详情接口时不时会报RPC调用超时,检查代码发现接口里面查询活动耗时比较长,都是串...
Java 在PPT中创建散点图的实现示例
目录 创建图表前 创建图表时 其他注意事项 本文将以Java代码示例展示如何在PPT幻灯片中创建散点图表。 创建图表前 需要在Java程序中导入用于操作PPT的jar包 Free Spire.Presentation for Java。...
Java中将接口返回的字节串转为文件详解
讲一下现在的需求场景 最近公司要在项目中访问一个第三方服务,在这个第三方服务中,需要下载一个报告文件,通过一个接口反馈回来。 这个下载接口返回了一个字节串,如[1,2,3,...
图解Java排序算法之3种简单排序
目录 简单选择排序 代码实现 冒泡排序 代码实现 直接插入排序 代码实现 总结 排序是数据处理中十分常见且核心的操作,虽说实际项目开发中很小几率会需要我们手动实现,毕竟每种...
Springboot 使用具体化类和配置来缩短单元测试时间
目录 具体化类和配置来缩短单元测试时间 SpringBoot 简单的单元测试 一、为什么写单元测试 二、简单的spring boot单元测试的实现 三、编写单元测试 具体化类和配置来缩短单元测试时间...
Arthas在线java进程诊断工具在线调试神器详解
`Arthas` 是 Alibaba 开源的Java诊断工具,深受开发者喜爱。 当你遇到以下类似问题而束手无策时,`Arthas`可以帮助你解决: 1. 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Excepti...
以武侠形式理解Java LinkedList源码
目录 一、LinkedList 的剖白 二、LinkedList 的内功心法 三、LinkedList 的招式 1)招式一:增 2)招式二:删 3)招式三:改 4)招式四:查 四、LinkedList 的挑战 一、LinkedList 的剖白 大家好,我...
SpringMVC @RequestBody的使用解析
目录 SpringMVC @RequestBody的使用 @RequestBody使用的一些注意事项 SpringMVC @RequestBody的使用 Spring mvc是一个非常轻量的mvc框架,注解可以大大减少配置,让请求的拦截变得比较简单。这次记录下...
Java Spring MVC获取请求数据详解操作
目录 1. 获得请求参数 2. 获得基本类型参数 3. 获得POJO类型参数 4. 获得数组类型参数 5. 获得集合类型参数 6. 请求数据乱码问题 7. 参数绑定注解 @requestParam 8. 获得Restful风格的参数 9. 自定...
springboot 缓存@EnableCaching实例
目录 springboot 缓存@EnableCaching Spring @EnableCaching的工作原理 springboot 缓存@EnableCaching 很多时候系统的瓶颈都在一些比较复杂的IO操作,例如读取数据库,如果一些比较稳定的数据,一般的...
深入理解Java设计模式之适配器模式
目录 一、什么是适配器模式 二、适配器模式的结构 三、适配器模式的使用场景 四、适配器模式的优缺点 五、适配器模式的实现 1.类适配器模式 2.对象适配器模式 六、适配器模式的...
Java线程死锁代码详解
/** * @author hollis */public class JStackDemo { public static void main(String[] args) { Thread t1 = new Thread(new DeadLockclass(true));//建立一个线程 Thread t2 = new Thread(new DeadLockclass(false));//建立另一个线程 t1.start...
Springboot项目实现将类从@ComponentScan中排除
目录 将类从@ComponentScan中排除 问题描述 方案一 方案二 方案三 方案四 @ComponentScan 详解 将类从@ComponentScan中排除 问题描述 最近在学习SpringCloud的Ribbon,在使用 @RibbonClient(name = "SPRINGCLO...
Java 封装的使用详解
目录 1. 基本介绍 2. 封装介绍 3. 封装的理解和好处 4. 封装的实现步骤 (三步) 5. 快速入门案例 6. 将构造器和 setXxx 结合 7. 练习 1. 基本介绍 面向对象编程有三大特征:封装、继承和多态...
Java多线程编程详细解释
目录 一、多线程的优缺点 多线程的优点: 多线程的代价: 二、创建java多线程 1、创建Thread的子类 2、实现Runnable接口 三、线程安全 四、java同步块 五、java线程通信 六、java中的锁 七、...
Java this关键字的使用详解
目录 1. 先看一段代码,并分析问题 2. 深入理解 this 3. this 的注意事项和使用细节 4. this 的案例 1. 先看一段代码,并分析问题 public class This01 { //编写一个main方法 public static void main(String[]...
SpringBoot @CompentScan excludeFilters配置无效的解决方案
目录 @CompentScan excludeFilters配置无效 FilterType @ComponentScan excludeFilters 自定义过滤器 一、@ComponentScan的作用 二、定义组件 三、在主程序类中测试 四、@ComponentScan中excludeFilters使用 @CompentS...
Java 构造方法的使用详解
目录 1. 看一个需求 2. 基本语法 3. 基本介绍 4. 快速入门 5. 注意事项和使用细节 6. 练习 1. 看一个需求 看一个需求:前面我们在创建人类的对象时,是先把一个对象创建好后,再给他的...
Java线程池的分析和使用详解
目录 1. 引言 2.线程池的使用线程池的创建 线程池的关闭 3. 线程池的分析 4. 合理的配置线程池 5. 线程池的监控 总结 1. 引言 合理利用线程池能够带来三个好处。 第一:降低资源消耗。...
SpringBoot多数据源配置的全过程记录
目录 前言 配置文件 依赖 构建 AbstractRoutingDataSource 数据源切换 目录 总结 前言 多数据源的核心就是向 IOC 容器注入 AbstractRoutingDataSource 和如何切换数据源。注入的方式可以是注册 Bean...
spring boot项目使用@JsonFormat失效问题的解决
目录 使用@JsonFormat失效 原因:项目中配置了fastjson包 使用@JsonFormat注解踩过的坑 错误原因 解决方案 使用@JsonFormat失效 在实体类定义时间格式 原因:项目中配置了fastjson包 返回数据使用...
Java 画时钟遇到的问题及解决方案
1.不能一直得到当前的时间,导致刷新时间不变。 刚开始我自以为把int s = calendar.get(Calendar.SECOND)放到一个线程线程里再刷新就可以看到秒的变化了, 可惜结果并不是我想到那样,画...
springboot 返回json格式数据时间格式配置方式
目录 返回json格式数据时间格式配置 返回json日期格式问题 返回json格式数据时间格式配置 数据库里面查出来的时间是时间错格式,前段需要处理才能展示相应的格式,自己一个个转的话...
超详细解释Java反射
目录 一、什么是反射 1. 反射机制的功能 2. 实现反射机制的类 二、反射的使用 1. Customer类 2. ReflectTester类 三、具体实例 1. ReflexDemo类 2. WriteFile类 3. Main类 总结 之前写到了设计模式的代...
使用@Autowired注解有错误提示的解决
目录 使用@Autowired注解有错误提示 处理方式 @Resource注解与@Autowired注解的异同点 Spring的@Autowired注解报错改为警告 使用@Autowired注解有错误提示 使用Spring boot +mybatis框架时,在service实现类...
Java二叉树的四种遍历方式详解
二叉树的四种遍历方式: 二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有的结点,使得每个结点被访问依次且仅被访问一次。 四种遍历方式...
使用@Autowired注解引入server服务层方法时报错的解
目录 @Autowired注解引入server服务层方法时报错 网上搜的方法:还行 JavaBean属性 方法 关于@Autowired 注解时发生的错误 1.解决 2.解决 @Autowired注解引入server服务层方法时报错 contentTypeServic...
@Autowired注解注入的xxxMapper报错问题及解决
目录 @Autowired注解注入的xxxMapper报错 项目场景 问题描述 解决方案 分析 @Autowired无法加载Mapper,报错404或者500 @Autowired注解注入的xxxMapper报错 项目场景 Mybatis-Plus测试 问题描述 在Mybatis-P...
Java时间复杂度、空间复杂度的深入详解
目录 算法效率 时间复杂度 什么是时间复杂度 推导大 O 阶的方法 算法情况 计算冒泡排序的时间复杂度 计算二分查找的时间复杂度 计算阶乘递归的时间复杂度 计算斐波那契递归的时间...
Java 类与对象重难点详解
目录 什么是类、对象? 类和类的实例化 字段的初始化 类当中实现方法 static 静态关键字 封装 private 实现封装 setter 和 getter 方法 构造方法 this 关键字 匿名对象 什么是类、对象? 因为...
使用@JsonFormat的一个坑及解决
目录 使用@JsonFormat的一个坑及解决 解决如下 JsonFormat的时间格式踩坑 使用@JsonFormat的一个坑及解决 spring boot项目 ,mysql数据库的datetime数据类型无法使用@JsonFormat解析 ,使@JsonFormat注解失...
java实现AES 32位加密解密的方案
目录 1、常用加密32位原因 2、解决方案 3、AES工具类 1、常用加密32位原因 网上很多解密加密是16位的,用32位密钥加密会报 java.security.InvalidKeyException: Illegal key size or default parameters 异常...
Java简单工厂模式详细解释
目录 简单工厂模式概述 简单工厂模式的结构与实现 结构: 实现 简单工厂模式的简化 简单工厂模式的优缺点和适用环境 简单工厂模式的优点 简单工厂模式的缺点 简单工厂模式的适用...
Java中类与对象的相关知识点总结
目录 一、面向过程与面向对象的理解 二、类与对象的理解与认识 三、类的成员 1.字段/属性/成员变量 2.对null的基本认识 3.方法 (method) 4.static 关键字 四、封装 1. private实现封装 2.gette...
Java 递归重难点分析详解与练习
目录 递归是什么 分析递归的过程 递归练习 按顺序打印一个数的每一位 递归是什么 就是一个方法在执行的时候,自己调用自己。 递归的要求: 1 有一个趋近于终止的条件 2 实现递归要...
Java 数据结构之时间复杂度与空间复杂度详解
目录 算法效率 时间复杂度 什么是时间复杂度 推导大 O 阶的方法 算法情况 计算冒泡排序的时间复杂度 计算二分查找的时间复杂度 计算阶乘递归的时间复杂度 计算斐波那契递归的时间...
@ComponentScan在spring中无效的原因分析及解决方案
目录 @ComponentScan在spring中无效 查了大量资料之后,找到了原因 @Component和@ComponentScan常规理解 @Component和@ComponentScan的联系 @SpringBootApplication和@ComponentScan,扫描包的区别 @ComponentScan在spri...
深入理解Java设计模式之迭代器模式
目录 一、什么是迭代器模式 二、迭代器模式的结构 三、迭代器模式的使用场景 四、迭代器模式的优缺点 优点: 缺点: 五、迭代器模式的实现 抽象聚合类 迭代器抽象类 具体聚合类...
深入理解Java设计模式之备忘录模式
目录 一、什么是备忘录模式 二、备忘录模式的结构 三、备忘录模式的使用场景 四、备忘录模式的优缺点 五、备忘录模式的实现 总结 一、什么是备忘录模式 定义 :在不破坏封闭的前...
深入理解Java设计模式之访问者模式
目录 一、什么是访问者模式 二、访问者模式的结构 三、访问者模式的使用场景 四、访问者模式的优缺点 五、访问者模式的实现 总结 一、什么是访问者模式 定义 :表示一个作用于其...