- 博客(16)
- 资源 (3)
- 收藏
- 关注
原创 Java反射(通俗易懂)
Reflection(反射) 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查。被private封装的资源只能类内部访问,外部是不行的,但反射能直接操作类私有属性。反射可以在运行时获取一个类的所有信息,(包括成员变量,成员方法,构造器等),并且可以操纵类的字段、方法、构造器等部分。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法。所以先要获取到每一个字节码文件对应的Class类型的对象。
2024-04-11 14:30:00
916
原创 RequestBodyAdvice和ResponseBodyAdvice原理详解
RequestResponseBodyAdviceChain的afterBodyRead方法:调用getMatchingAdvice方法,获取RequestBodyAdvice类型的advice其中:class RequestResponseBodyAdviceChain implements RequestBodyAdvice, ResponseBodyAdvice。HandlerAdapter字面上的意思就是处理适配器,它的作用用一句话概括就是调用具体的方法对用户发来的请求来进行处理。
2024-04-11 14:00:00
1287
原创 Log4j的配置与使用详解
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,我们可以控制每条日志的输出格式;只需要通过一个配置文件就可以灵活的配置,而不需要修改任何代码。日志级别ALL< DEBUG(调试) < INFO(消息) < WARN(警告) < ERROR(错误) < FATAL
2024-04-11 09:56:38
647
原创 Java之函数式接口
有且仅有一个抽象方法的接口。Java中的函数式编程体现就是Lambda表达式。所以函数式接口即可以适用于Lambda使用的接口。如何检测一个接口是不是函数式接口?放在接口定义的上方:如果接口是函数式接口,编译通过;如果不是,编译失败。”);i.show();注意:自定义函数式接口时,@FunctionalInterface是可选的,就算不写这个注解,只要保证满足函数式接口定义的条件,也照样是函数式接口。
2024-04-11 09:42:39
2022
原创 超详细Spring、SpringBoot所有扩展点整理
最后附上一张流程图,在bean生命周期的各个位置的扩展点,bean是spring关键的功能,所以主要扩展点也都在bean的生命周期上。这就是Spring和SpringBoot所有的扩展点,如果有遗漏欢迎留言告知,我们会后续补充~-另外因为ComponentScan是发生在refresh阶段的,也就是说如果在此阶段前尝试去获取bean是无法拿到我们自己引入该类型的bean,也就是实现会无法应用,但我们可以通过Spring.factories文件配置,因为部分组件会在启动时候去扫描获取。
2024-04-10 13:30:00
1475
1
原创 Java 8 Stream 流操作
在这篇博文中,我们将深入探索Java 8的Stream API,这是一项革命性的特性,极大地改善了数据集合的处理方式。从基本的中间操作如过滤(filter)、映射(map)、排序(sorted),到终端操作如收集(collect)、计数(count)、匹配(anyMatch, allMatch, noneMatch),再到高级特性如并行流处理,我们将逐一解析这些功能的内部机制和实际应用场景。
2024-04-09 11:11:26
338
原创 Java 集合全教程—List
列表是一个有序的集合(有时称为序列)。列表可能包含重复的元素。位置访问-根据元素在列表中的数字位置来操作元素。这包括get、set、add、addAll和remove等方法。搜索-在列表中搜索指定的对象并返回其数字位置。搜索方法包括indexOf和lastIndexOf。迭代-扩展了Iterator语义,以利用列表的顺序性。listIterator方法提供了这种行为。范围视图-子列表方法对列表执行任意范围操作。Java平台包含两个通用的List实现。
2024-03-20 11:05:29
780
原创 Java 集合全教程
集合(有时称为容器)只是将多个元素分组到单个单元中的对象。集合用于存储、检索、操作和传达聚合数据。通常,它们表示形成自然组的数据项,例如扑克手(纸牌集合)、邮件文件夹(字母集合)或电话簿(名称到电话号码的映射)。如果您使用过 Java 编程语言(或者几乎任何其他编程语言),那么您已经熟悉集合。集合_框架_是用于表示和操作集合的统一体系结构。**接口:**这些是表示集合的抽象数据类型。接口允许独立于其表示形式的细节操作集合。在面向对象的语言中,接口通常形成层次结构。
2024-03-20 11:00:39
612
原创 java -- 题解
线程池就是提前创建若干个线程,如果有任务需要处理,线程池里的线程就会处理任务,处理完之后,线程并不会被销毁,而是等待下一个任务,由于创建和销毁线程都是消耗系统资源的,所以当你想要频繁的创建和销毁线程的时候就可以考虑使用线程池来提升系统的性能。newCachedThreadPool创建一个可缓存线程池newFixedThreadPool创建一个定长线程池,可控制线程最大并发数newScheduledThreadPool创建一个定长线程池,支持定时及周期性任务执行。
2022-10-09 15:05:59
658
原创 自定义数据连接dbutil
自定义数据库连接DBUtil准备mysql驱动的jar文件。数据库连接池接口package com.asen.sql;import java.sql.Connection;/** * 数据库连接池接口 * @author ASen */public interface DbPool { /** * 初始化连接池 */ void init(); /** * 得到一个连接 * @return Connection对象
2021-09-22 14:07:19
106
原创 mybatis-plus代码生成器
例如:#include(“one.gif”,“two.txt”,“three.html”) #include和#parse的作用都是引入本地文件,为了安全,被进入的文件只能在Template_root目录下。#parse引入的文件内容,将解析其中的velocity并交给模板,相当于把引入的文件内容copy到文件中。#parse只能引入指定的单个对象。当变量被定义的时候,两个\代表一个\,如果未被定义,则按照原样输出。#include引入的文件内容不会被velocity模板引擎解析。
2021-08-12 16:37:00
764
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人