自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 Freemarker快速入门

FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

2025-06-03 21:36:56 480

原创 Redis数据类型操作命令

String类型,是Redis中最简单的存储类型。由于String结构是将对象序列化位JSON字符串后存储,当需要修改对象某个字段时很不方便。因为SortedSet的可排序特性,所以经常用来实现排行榜这样的功能。- 注意所有的排名默认都是升,如果要降序则在命令的Z后面添加REV即可。可以看作是一个value为null的HashMap。可以看作一个双向链表。

2025-06-02 17:35:45 329

原创 SpringBoot自动配置原理

Spring Boot的自动配置机制主要通过@EnableAutoConfiguration注解实现。该注解通过@Import导入了AutoConfigurationImportSelector类,该类实现了DeferredImportSelector接口。

2025-05-14 21:35:25 687

原创 java注解

Java注解是一种特殊标记,用于提供元数据,帮助其他程序决定如何执行代码。注解可以应用于类、构造器、方法、成员变量、参数等位置。自定义注解通过@interface定义,可以包含属性和默认值,其中value属性在使用时可省略名称。注解的本质是一个继承Annotation接口的接口,编译后表现为接口形式。元注解用于修饰注解,如@Target指定注解使用位置,@Retention定义注解的保留周期。注解解析通过AnnotatedElement接口实现,可以获取或判断注解的存在。通过注解,可以模拟简易版的Junit

2025-05-11 14:08:00 366

原创 Java反射

反射是Java中一种强大的机制,允许程序在运行时动态加载类并操作其内部结构,包括构造器、成员变量和方法。反射的基本步骤包括:首先通过Class对象获取类的字节码,然后通过Constructor、Field和Method对象分别获取类的构造器、成员变量和方法。反射提供了多种方式获取这些对象,并且可以通过setAccessible方法绕过访问控制,实现“暴力反射”。反射的主要应用场景包括框架设计,能够动态调用类的方法和访问属性,尽管它可能破坏封装性,但在需要高度灵活性和通用性的场景中非常有用。

2025-05-11 11:31:17 488

原创 Java日志系统

JUL是java自带的日志实现框架。框架介绍日志级别:注意:JUL中默认的日志级别为info,小于info的默认不输出。配置文件,将Level调为ALL级别用LogManager加载这个配置文件。由于上面已经配置好了handlers。所以该log信息会同时输出到控制台和logs目录文件中配置文件详解JUL日志原理解析初始化LogManagerLogManager加载logging.properties配置添加Logger到LogManager从单例LogManager获取Logg

2025-05-08 21:16:29 972 1

原创 JDBC基础

数距库连接池是个容器,负责分配、管理数距库连接(connectiion)好处资源复用提升系统响应速度避免数距库遗漏。

2025-05-05 21:03:10 633

原创 Maven基础使用方法

Maven构建命令使用mvn开头,后面添加功能参数,可以一次执行多个命令,使用空格分隔。依赖的jar默认情况下可以在任何地方使用,可以通过scope标签设定其作用范围。排除依赖指主动断开依赖的资源,被排除的依赖无需指定版本。可选依赖指对外隐藏当前所有依赖的资源——不透明。

2025-05-05 15:01:16 913

原创 leetcode刷题笔记:2962.统计最大元素出现至少k次的子数组

给你一个整数数组 nums 和一个 正整数 k。请你统计有多少满足 「 nums 中的 最大 元素」至少出现 k 次的子数组,并返回满足这一条件的子数组的数目。子数组是数组中的一个连续元素序列。示例 1:输入:nums = [1,3,2,3,3], k = 2输出:6解释:包含元素 3 至少 2 次的子数组为:[1,3,2,3]、[1,3,2,3,3]、[3,2,3]、[3,2,3,3]、[2,3,3] 和 [3,3]。

2025-04-29 13:21:03 1040

原创 java-Stream流

将集合中的所有元素像流水线一样的方法进行处理。

2025-04-29 10:20:52 327

原创 java的高级流

原理:底层自带了长度为8182的缓冲区提高性能。

2025-04-28 20:15:17 814

原创 leetcode刷题笔记:2302.统计得分小于K的子数组数目

一个数组的 分数 定义为数组之和 乘以 数组的长度。比方说,[1, 2, 3, 4, 5] 的分数为 (1 + 2 + 3 + 4 + 5) * 5 = 75。给你一个正整数数组 nums 和一个整数 k ,请你返回 nums 中分数 严格小于 k 的 非空整数子数组数目。子数组 是数组中的一个连续元素序列。

2025-04-28 14:04:36 898

原创 Java-IO流

IO流:用于读写文件中的数据。为什么叫流?是因为在传输数据时像流水一样。

2025-04-27 20:35:44 834

原创 java线程同步

可以看到即使给了足够多的时间让进程执行完毕。多线程还是会争抢数据,会导数据不安全。与管程法不同的是,信号灯法会让生产者和消费者更有纪律性:二者严格交替。生产者将生产好的数据放入缓冲区,消费者从缓冲区中拿出数据。实现与callable接口类似。

2025-04-14 22:23:20 904

原创 leetcode刷题笔记:1534.统计好三元组

给你一个整数数组 arr ,以及 a、b 、c 三个整数。请你统计其中好三元组的数量。如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件,则认为它是一个 好三元组。其中 |x| 表示 x 的绝对值。返回 好三元组的数量。

2025-04-14 13:31:48 625

原创 java线程状态

状态图解。

2025-04-13 22:33:14 402

原创 java静态代理

真实对象和代理对象都要实现同一个接口代理对象要代理真实角色。

2025-04-13 21:56:34 239

原创 java线程创建

注意调用时要调用thread1.start()方法而不是run方法,这个方法我们要对其经行重写。同时使用一个继承了Run able的类,开始线程。

2025-04-13 21:30:14 516

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除