Redis:分布式锁应用中获取锁与加锁的原子性问题

前言在分布式环境下通常需要加分布式锁来解决服务之间的资源竞争问题,通常我们使用 Redis 或者 Zookeeper 来解决分布式锁问题。本文我们来解决下 Redis 实现分布式锁时的获取锁和加锁的原子性操作问题。实现前面我们写过几篇关于 Redis 基本操作的案例,本文不再赘述 Redis 的基础
Redis 2025年04月02日 48次浏览

Java:Java8函数式接口使用

前言最近遇到 Java8 里的函数式接口,记录一下常规使用。实现函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。函数式接口可以被隐式转换为 Lambda 表达式。Java8 里的函数式接口可分为五大类:消费型接口(Consumer)
Java 2025年03月11日 79次浏览

Java:可变参数应该如何传参

前言方法的入参为可变参数时,应该如何传参?实现理论对于入参为可变参数的方法,在传参时把参数转为数组类型即可。代码package demo;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;impo
Java 2024年04月25日 464次浏览

Java:使用迭代器在JSONArray中删除或修改元素

前言在 List 或 JSONArray 的遍历中无法直接使用 remove() 方法来删除元素,这是因为 remove() 方法会改变集合的大小,这会直接影响到遍历操作。我们可以使用 Iterator 迭代器来进行操作。实现代码:@GetMapping("/t17")publi
Java 2024年03月18日 560次浏览

Java:Stream流遍历对象集合

前言使用 Stream 流遍历元素为对象的集合。实现代码:@GetMapping("/t16")public void test16(){JSONArray jsonArray = new JSONArray();JSONObject jsonObject1 = new JSON
Java 2024年03月18日 675次浏览

Java:stream流和parallelStream流

前言在学习过程中遇到 parallelStream 流操作,学习记录一下。实现理论部分此前总结过 stream 流的操作,链接。parallelStream 方法的使用与 stream 相同,只是在创建 stream 流时调用 parallelStream 方法。parallelStream 把 s
Java 2024年02月19日 534次浏览

SpringBoot:@SneakyThrows注解

前言在学习过程中遇到 @SneakyThrows 注解,学习记录一下。实现理论部分在代码中遇到异常时,我们通常会直接 throw 抛出异常,或者使用 try...catch()... 来捕获异常,这两者均需要我们手动来“处理”(注意这里的“处理”仅仅是抛出或者捕获,并没有真正意义上处理)。而 Lom
SpringBoot 2024年02月18日 655次浏览

SpringBoot:@Lazy懒加载注解

前言在学习过程中遇到 @Lazy 注解,学习记录一下。实现理论部分以下为在网络上找到的关于 @Lazy 注解的较为详细的解释:Spring IoC(ApplicationContext)容器一般都会在启动的时候实例化所有单实例 Bean。如果我们想要 Spring 在启动的时候延迟加载 Bean,即
SpringBoot 2024年01月31日 1,058次浏览

Java:继承中父类与子类构造方法的加载顺序

前言最近在学习过程中发现项目代码中使用了继承来简化核心功能代码,今天又加深了一些理解和体会。实现理论部分先说一下结论:无论通过子类的无参构造还是有参构造方法去实例化子类时,如果没有显式地调用父类的构造方法,那么 Java 会先去隐式地调用父类的无参构造来初始化父类;也可以通过在子类的构造方法中显式地
Java 2024年01月25日 605次浏览

Redis连接方式:JedisPool操作Redis

前言前面我们写过使用 RedisTemplate 和 StringRedisTemplate 操作 Redis,本文我们将使用 JedisPool 操作 Redis。实现Redis官方 推荐使用 JedisPool 来操作 Redis。这里我们直接贴代码:引入依赖:<dependency>
Redis 2023年12月26日 488次浏览