JAVA
文章平均质量分 91
夏诗曼CharmaineXia
日拱一卒,功不唐捐
展开
-
Spring事件快速上手
Spring 事件(Application Event)是 Spring 框架中实现观察者模式的一种方式,可以通过发布者和监听器来处理事件,常用于类之间解耦合、异步操作原创 2024-07-31 14:59:29 · 791 阅读 · 0 评论 -
Java 枚举的使用与反射应用
Java枚举是一种特殊的数据类型,用于定义一组常量集合,可以定义简单的枚举常量,也可以为枚举常量添加属性和方法。// 定义表示星期的枚举类型MONDAY, // 星期一TUESDAY, // 星期二WEDNESDAY, // 星期三THURSDAY, // 星期四FRIDAY, // 星期五SATURDAY, // 星期六SUNDAY // 星期日带参数定义允许枚举常量携带额外信息,使枚举更具灵活性。// 定义表示季节的枚举类型,每个季节携带中文名称SPRING(1,"春天"),原创 2024-05-14 19:48:15 · 725 阅读 · 0 评论 -
Java Stream性能优化技巧 | 优雅处理集合数据
Stream是Java 8中新增的一个API,它提供了一种流式处理集合数据的方法。Stream可以看作是一种高级的迭代器,它不直接存储数据,而是通过对数据的一系列操作来实现对数据的处理。原创 2024-01-02 10:20:59 · 1383 阅读 · 1 评论 -
接口 vs 抽象类:如何在Java中做出正确的选择
接口和抽象类是面向对象编程中常用的概念,它们在软件设计中起着重要的作用。基础是非常重要的,这方面的思考不能少,有兴趣的可以在评论区发表见解,我们一起讨论。原创 2023-11-08 21:37:01 · 303 阅读 · 0 评论 -
Spring 为什么使用三级缓存解决循环依赖
类A需要类B,我们就叫做类A依赖类B。简单说就是⾃⼰依赖⾃⼰,或者和别的类相互依赖。原创 2023-08-23 11:16:48 · 1053 阅读 · 0 评论 -
Java集合容器详解:ArrayList、LinkedList和HashMap、HashTable及其区别
Java集合框架是Java提供的一组用于存储和操作数据的类和接口。其中,ArrayList、LinkedList和HashMap、HashTable是常用的集合容器,它们在不同的场景中具有重要性和广泛应用。原创 2023-08-09 15:25:22 · 1038 阅读 · 0 评论 -
Java并发 | 常见线程安全容器
线程安全数据类型通常提供了一些同步机制来保证数据的一致性。这些机制可以包括锁、互斥量、原子操作、无锁算法等。会在多个线程同时访问数据时进行同步操作,以保证每个操作的原子性和正确性。原创 2023-08-09 11:17:58 · 1081 阅读 · 0 评论 -
Java多线程 | 操作线程的方法详解
操作线程的常用方法详解原创 2023-08-05 11:47:40 · 482 阅读 · 0 评论 -
使用Java IO进行压缩和解压缩 | ZIP和GZIP的实现
Java IO中的压缩和解压缩功能主要通过包和方便易用。Java提供了简洁而易于使用的API,使得压缩和解压缩变得简单和方便。原创 2023-07-27 09:44:09 · 2848 阅读 · 2 评论 -
Java 文件过滤器 | 按条件筛选文件
文件过滤器是在文件处理中起到重要作用的工具,它可以用来筛选文件并根据特定的条件进行过滤。原创 2023-07-27 09:18:38 · 1036 阅读 · 1 评论 -
Java并发编程 | 创建线程的几种方式
在并发编程中,线程是执行代码的基本单位。通过创建多个线程,可以实现并发执行,提高程序的效率和响应性。提高程序的运行效率和响应性。原创 2023-07-20 22:21:01 · 3449 阅读 · 0 评论 -
Java IO | 异步编程 | 使用CompletableFuture进行非阻塞IO
CompletableFuture是Java中的一个类,用于支持异步编程和处理异步任务的结果。它提供了一种方便的方式来处理异步操作,并允许我们以非阻塞的方式执行任务。原创 2023-07-19 10:16:07 · 3861 阅读 · 0 评论 -
Java IO | 装饰器模式 | 扩展和定制流功能
Java中的装饰器类位于java.io包中。这些类实现了装饰器模式,允许我们在IO流中添加额外的功能。原创 2023-07-18 17:31:48 · 3596 阅读 · 0 评论 -
Java NIO | 并发环境下非阻塞IO技术
Java NIO(New IO)是Java平台提供的一种用于高效处理I/O操作的API。它引入了一组新的类和概念,以提供更好的性能和可扩展性。非阻塞模式是Java NIO中的一种I/O模式,它允许程序在等待数据准备好时继续执行其他任务,而不是一直等待数据的到达或操作的完成。原创 2023-07-18 09:08:55 · 3464 阅读 · 0 评论 -
Java语法糖:甜化你的编程体验
当谈到Java中的语法糖时,我们指的是一些在编译器中进行转换的语法结构,使代码更易读、更易写,但在底层仍然会被转换为普通的Java代码。原创 2023-07-03 15:46:43 · 3380 阅读 · 2 评论 -
cglib动态代理 | 拦截器
CGLIB拦截器的作用是在代理类中插入增强逻辑,实现与目标方法的拦截、预处理和后处理操作,同时实现了横切关注点的分离和代理的灵活配置原创 2023-07-01 22:04:32 · 3304 阅读 · 0 评论 -
cglib动态代理 | 如何生成代理类、代理类内容解析
CgLib(Code Generation Library)是一个针对java,且开源的代码生成类库,封装了ASM,ASM可以直接产生二进制class文件。原创 2023-06-24 10:15:40 · 4701 阅读 · 5 评论 -
java异常 | 处理规范、全局异常、Error处理
在异常处理过程中,记录异常相关的信息,如异常类型、异常堆栈信息、触发异常的位置等。原创 2023-06-10 11:29:08 · 5046 阅读 · 2 评论 -
SpringBoot配置文件 | 多环境配置 | 读取配置的4种方式
SpringBoot配置文件 | 配置文件优先级 |多环境配置 | 读取配置的4种方式原创 2023-05-25 15:38:17 · 6520 阅读 · 3 评论 -
多个Filter的执行顺序 | 职责链模式应用
Filter(过滤器) 是 Java Servlet 规范中定义的一种组件,用于在请求到达 Servlet 之前或响应返回给客户端之前对请求和响应进行处理。Filter 可以设置多个,并且按照一定顺序依次执行,这是因为使用了设计模式中的职责链模式。原创 2023-05-22 16:26:16 · 6373 阅读 · 4 评论 -
如何设置token有效期【5个应用场景分析+双token实现解析】
Token最常见的应用场景之一就是身份验证,验证token还有各种场景,你需要进一步了解token的有效期如何设置。原创 2023-05-10 10:11:11 · 1750 阅读 · 7 评论 -
文件上传下载系列——如何实现文件秒传
文件秒传能够节省用户上传大文件的时间和带宽,提高文件传输的效率和速度。例如,百度云盘、阿里云OSS、腾讯云COS等云存储服务都支持文件秒传技术。原创 2023-04-28 20:25:13 · 3005 阅读 · 9 评论 -
如何生成以及校验token
token是由服务端创建的一串字符串,登陆成功后发送给前端存储在浏览器或本地中,以后每次发送请求都携带上。原创 2023-04-25 10:05:59 · 6472 阅读 · 4 评论 -
java内部类详解
内部类是JAVA语言的主要附加部分。嵌套类从JDK1.1开始引入。把类定义在另一个类的内部,该类就被称为内部类。原创 2023-03-31 21:41:45 · 310 阅读 · 3 评论 -
Spring Bean管理核心组件——后置处理器详解
后置处理器就像组件,Spring很多事情就是交给组件去管理,使用就添加,不使用就不添加,非常符合开闭原则。原创 2023-03-29 21:25:04 · 946 阅读 · 1 评论 -
手写Spring扫描逻辑(带图好理解)
【代码】Spring扫描逻辑原码解析(带图好理解)原创 2023-02-24 22:58:11 · 276 阅读 · 1 评论 -
线程池概念简单入门
刚才也简单介绍了线程的概念,为什么要引入线程池呢?要讲到线程的生命周期,每个线程都有“创建——使用——销毁”这样一个大致的周期,创建、销毁都是要耗费资源的(时间、cpu等),线程数越多,耗费的资源越多。但我们又不得不使用多线程,那么线程池就出现了,解决了处理短时间内创建和销毁线程代价较大的弊端。原创 2023-02-12 18:20:07 · 114 阅读 · 1 评论 -
java注解简单理解
注解让代码变得简洁,开发效率更高原创 2022-04-26 16:12:57 · 1880 阅读 · 18 评论 -
酷似js的java函数简写——lambda表达式
可以称作闭包,是java8的重要特性lambda允许把函数当做一个方法的参数,使代码简洁紧凑前提:必须是函数式接口才能使用lambda表达式函数式接口:任何接口,只包含一个抽象方法//推导lambda表达式1public class TestLambda{ public static void main(String[] args){ ILike like=new Like(); like.lambda(); }}//定义一盒函数式接口interface原创 2022-04-26 16:07:56 · 2145 阅读 · 7 评论 -
JAVA内存解析
全局变量系统自动初始化,局部变量必须让程序员初始化。四种内存空间:堆(heap):由程序员手动分配和释放,存放new出来的对象,如果程序员没有释放,在程序结束时由系统回收,分配方式类似于链表。由于堆是程序员管理的,如果管理不当会导致内存泄露的问题,内存泄露指已经分配的内存空间无法被系统回收也无法被继续使用。解决这个问题,C++可以使用智能指针对象去指向分配的内存,在对象析构时释放内存防止内存泄露。在JAVA中由于有垃圾回收期,因此可以不用担心内存泄露的问题。(但java还是会存在内存泄露,什么样的情原创 2021-10-29 19:11:28 · 235 阅读 · 6 评论