自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 在闲暇时间记录的一些Java细碎的知识点,希望能帮到大家

由于类方法是属于整个类的,并不属于类的哪个对象,所以类方法的方法体中不能有与类的对象有关的内容。LinkedList每次增加的时候,会new一个Node对象来存新增加的元素,所以当数据量小的时候,这个时间并不明显,而ArrayList需要扩容,所以LinkedList的效率就会比较高,但当ArrayList不需要扩容的时候它的效率应该是LinkedList高的,当数据量很大达到千万级别的时候,new对象的时间大于扩容的时间,那么就会出现ArrayList的效率比Linkedlist高的情况了。

2025-03-09 14:11:31 801 1

原创 JWT概述以及Token刷新机制

什么是JWT,简单的说就是一个存储在请求头中的字符串,包含了用户信息和校验信息。较为正式一点的来说, JWT(JSON Web Token)是一种无状态的身份认证机制,通常用于前后端分离项目。无状态:JWT是基于客户端存储的,不会存储在服务端,减轻了服务端的存储压力高性能:每次请求都会携带JWT,而不用查询数据库或缓存,就能完成身份认证对于跨域友好:由于是通过HTTP请求进行传输,不存在跨域限制。

2025-03-09 13:37:01 1045 1

原创 Spring事件发布与监听

Spring的事件机制基于发布-订阅模式,可以有效地解耦系统中各个组件之间的交互。事件发布和监听分离,使得系统的组件更加独立。通过自定义事件类、事件发布者和事件监听器,你可以非常方便地实现Spring应用中的事件驱动逻辑。事件发布:通过ApplicationContext.publishEvent()发布事件。事件监听:通过实现ApplicationListener接口或使用@EventListener注解监听事件。

2025-01-10 22:32:27 818

原创 spring依赖注入

Qualifier用于在存在多个同类型Bean时,明确指定要注入哪个Bean。@Primary用于标记某个Bean为优先选择的Bean,在没有@Qualifier的情况下会被默认注入。@Value可以通过外部配置(如)来指定注入Bean的名称。

2025-01-10 22:23:18 589

原创 Spring Mvc中拦截器Interceptor详解

拦截器常用于在请求处理的不同阶段插入自定义逻辑。Spring MVC的拦截器作用是在请求到达控制器之前或之后进行拦截,可以对请求和响应进行一些特定的处理。登录验证:对于需要登录才能访问的网址,使用拦截器可以判断用户是否已登录,如果未登录则跳转到登录页面。权限校验:根据用户权限对部分网址进行访问控制,拒绝未经授权的用户访问。请求日志:记录请求信息,例如请求地址、请求参数、请求时间等,用于排查问题和性能优化。更改响应:可以对响应的内容进行修改,例如添加头信息、调整响应内容格式等。

2024-11-04 22:44:34 1675

原创 手写ioc容器(简易版)

主要是通过仿照Beanfactory的思想,利用反射来实现一个非常简单的ioc容器。自定义注解实现ioc容器的管理功能,通过识别注解标识的类,利用反射创建对象并加入beanfactory中实现依赖注入,为容器中对象,若其属性有注解标示,则为其赋值以上就是大体的思路了,我们在实现的时候只关注核心功能,一些细节之处便不再关注,如异常处理,这里便直接throws Exception了。

2024-10-29 20:38:35 787 1

原创 Lomda表达式与函数式接口

Lambda 表达式(也称作箭头函数)是Java 8引入的一项重要特性,它使得编写函数式接口的实现更加简洁和直观。Lambda 表达式可以看作是匿名函数,可以在需要函数式接口的地方使用。或看起来是不是特别简洁呢?我们通过一个例子来感受一下。(创建线程的方式之一)首先是普通方式@Override");}).start();使用 Lambda 表达式可能第一次接触有些看不懂,后面我们会讲解具体的Lomda语法细节。你就说简不简洁吧。Lomda表达式是不是非常简洁呢?

2024-10-28 22:41:18 842

原创 Java jdk版动态代理介绍

动态代理(Dynamic Proxy)是一种在运行时动态创建代理对象的技术,允许你在不修改原始类代码的情况下,为某个对象提供额外的行为。动态代理广泛应用于各种场景,如日志记录、事务管理、权限检查等。在 Java 中,动态代理主要通过类和接口来实现。动态代理使用了代理模式代理模式是一种设计模式,用于在不改变原始对象的情况下,为其提供一个代理对象,以便在访问原始对象时增加额外的操作。代理对象和原始对象实现相同的接口,这样客户端可以通过代理对象间接访问原始对象。

2024-10-27 09:41:28 660

原创 过滤器Filter的介绍和使用

在 Java Web 开发中,Filter是一个非常重要的组件,用于在请求到达 Servlet 之前或响应返回客户端之前对请求和响应进行预处理或后处理。Filter可以用来实现多种功能,如日志记录、权限检查、编码转换、请求头修改等。就好比机场的层层安检,对前来的乘客进行检查过滤,携带违规物品,未买机票等不满足机场要求的就会被阻止进入。

2024-10-19 15:06:13 1369

原创 会话管理--Cookie和Session

它是指管理和跟踪用户与系统之间交互过程的技术手段。每次当用户登录到某个网站或应用后,直到用户退出或者超时这段时间内,所发生的一系列交互就被认为是一个会话(Session)。会话管理的主要目的是确保在用户进行多步骤操作时,能够持续保持用户的登录状态,并且保证数据的安全性和完整性。我们常用的Http协议是一种无状态的协议。什么是无状态呢?就是指每个请求都是独立的,服务器处理请求时不会保留任何上下文信息。也就是说,从技术上讲,每次客户端发送请求到服务器时,服务器都不会记住之前与该客户端之间的任何交互历史。

2024-10-17 19:26:22 1422

原创 Servlet-05请求转发和响应重定向

请求转发(Request Dispatching)是 Servlet 中常用的一种技术,用于将请求从一个 Servlet 转发到另一个 Servlet或其他资源。请求转发的特点是客户端浏览器地址栏不会改变,因为整个过程是在服务器端完成的,对于客户端来说,是被屏蔽的。响应重定向(Response Redirect)是一种将客户端请求重定向到另一个 URL 的技术。与请求转发不同,重定向会导致客户端发起一个新的请求,因此浏览器的地址栏会显示新的 URL。

2024-10-14 22:14:15 1085

原创 Servlet-04ServletConfig和ServletContext

是 Java Servlet 规范中的一个接口,它为 Servlet 提供了初始化信息。当 Servlet 容器(如 Tomcat)创建一个 Servlet 实例时,它会传递一个对象给 Servlet 的init方法。对象包含了 Servlet 配置信息,这些信息主要来自于 Web 应用的部署描述符(web.xml文件)。为Servlet提供初始配置参数的一种对象,每个Servlet都有自己独立唯一的ServletConfig对象。

2024-10-13 22:01:10 1220

原创 Servlet-03DefaultServlet

是在一些Web服务器或应用服务器(如Tomcat,而在Jetty中,类似的组件被称为)中用于处理静态资源请求的默认Servlet。处理静态资源:当客户端请求的是HTML页面、图片、CSS文件等静态资源时,会负责从服务器上找到这些资源,并将它们发送回客户端。这与处理动态请求的Servlet(如那些用于处理表单提交或执行数据库查询的Servlet)形成对比。提供默认行为:如果应用程序没有为某个特定的URL模式配置Servlet或过滤器,那么就会接管这个请求。

2024-10-13 19:53:23 570

原创 Servlet-02概念以及具体使用

Servlet (server applet)称为小服务程序或服务连接器,是 Java 编程语言中用于扩展 Web 服务器功能的一组技术。Servlet 可以生成动态的 Web 内容,通常响应来自浏览器或其他客户端的请求。Servlet 运行在支持 Java 的 Web 服务器(如 Apache Tomcat、Jetty、WebLogic 等)上,作为与客户端进行交互的中间层,处理和响应 HTTP 请求。简单来说就是一个运行在服务端的一个帮助客户端与服务端通信的中间件。

2024-10-12 23:46:51 468

原创 Servlet-01HTTP协议

HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用广泛的一种网络协议,用于从Web服务器传输超文本到本地浏览器的传输协议。它定义了客户端和服务器之间交换数据的规则。HTTP是一个应用层协议,基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。通过请求-响应模型来传输数据。

2024-10-12 10:13:33 486

原创 超详细的Mysql笔记(进阶版)

概述:存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。在创建表时,指定存储引擎。若不指定,默认为INNODBCREATE TABLE 表名(字段1 字段1类型 [COMMENT 字段1注释]......字段n 字段n类型 [COMMENT 字段n注释])NE=INNODB[COMMENT 注释]查看当前数据库支持的存储引擎索引(index)是帮助MySQ高效获取数据的数据结构(有序)。

2024-09-22 22:04:07 2103

原创 超详细的Linux笔记,让你快速上手Linux各种操作

学习Linux,本质上是学习在命令行下熟练使用Linux的各类命令。命令行: 即Linux终端(Terminal),是一种命令提示符页面。以纯"字符”的形式操作系统,可以使用各种字符化命令对系统发出操作指令。命令: 即Linux程序。一个命令就是一个Linux的程序。命令没有图形化页面,可以在命令行(终端中)提供字符化的反馈。vi\vim是visualinterface的简称,是Linux中最经典的文本编辑器同图形化界面中的 文本编辑器一样,vi是命令行下对文本文件进行编辑的绝佳选择。

2024-09-17 22:28:35 1722

原创 超级无敌详细的Mysql数据库笔记(基础篇版)

1.概述:多表查询会产生笛卡尔乘积,即两个集合A集合 和 B集合的所有组合情况。在多表查询时,需要消除无效的笛卡尔积2.分类连接查询内连接: 相当于查询A、B交集部分数据外连接:左外连接:查询左表所有数据,以及两张表交集部分数据右外连接:查询右表所有数据,以及两张表交集部分数据自连接:当前表与自身的连接查询,自连接必须使用表别名子连接事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。

2024-09-15 11:00:05 1905

原创 单调栈及其应用

单调栈(Monotonic Stack)是一种特殊的数据结构,其特点是栈中的元素保持单调递增或单调递减的状态。单调栈的核心思想是在栈中维护一个单调序列。具体来说,可以分为单调递增栈和单调递减栈。单调递增栈在单调递增栈中,栈顶元素总是栈中最小的元素。每当新元素加入栈时,只有当新元素大于栈顶元素时才会入栈,否则弹出栈顶元素直到满足条件为止。单调递减栈在单调递减栈中,栈顶元素总是栈中最大的元素。每当新元素加入栈时,只有当新元素小于栈顶元素时才会入栈,否则弹出栈顶元素 直到满足条件为止。

2024-09-09 22:34:33 424

原创 优先队列及其应用

在优先队列中,元素的出队顺序不是按照先进先出(FIFO)的原则,而是按照优先级的高低来决定。优先级较高的元素会被优先处理。很多人可能会认为优先队列就是一种特殊的队列,其实优先队列的本质是堆。与之类似的还有单调队列,它也是对内部的元素有着特殊的要求,这几个一定要分清。

2024-09-04 13:00:01 817

原创 单调队列及其应用

单调队列(Monotonic Queue)是一种特殊的数据结构,单调队列的特点是其内部元素保持单调性,即要么递增,要么递减。

2024-09-03 23:15:04 1280 1

空空如也

空空如也

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

TA关注的人

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