- 博客(63)
- 收藏
- 关注
原创 Spring MVC小点
代码逻辑总结 1. 前端收集数据:从页面输入框中获取“发信人、收信人、留言内容”。2. 前端校验:确保这三个字段都不为空,避免传无效数据给后端。3. 前后端交互:通过 Ajax 以 JSON 格式,把数据发送到后端的 /message/publish 接口。4. 后端接收:后端用 MessageInfo 类接收数据(字段和前端 JSON 一一对应),后续可将数据存入数据库或内存中。 这样写的目的是实现“用户留言”的完整流程:前端负责和用户交互、收集数据,后端负责接收并处理(存储)数据~ - 作用
2025-09-16 10:02:42
804
原创 Spring MVC小点
以下是详细解释: - @Setter :为被注解的字段生成 setter 方法(用于给字段赋值)。- @Getter :为被注解的字段生成 getter 方法(用于获取字段值)。- @Data (代码中被注释了,原本可以用):是 Lombok 的“组合注解”,会同时生成 getter 、 setter 、 toString 、 equals 、 hashCode 等方法,能极大简化实体类代码。 - 类 MessageInfo :是一个普通的 Java 实体类,通常用于封装“消息相关的信
2025-09-16 09:46:17
1297
原创 Spring MVC6
controller (表现层)、 service (业务层)、 dao (数据层)、 util (工具类,通常是静态方法)、 entity (实体类,对应数据库表或业务模型,也叫 model / pojo / VO / DTO 等)。- 前后端分离:前端(如 Vue/React)和后端(如 Spring Boot)是独立项目,通过接口(API)交互,前端部署在静态服务器,后端部署在应用服务器。IoC 后,由 Spring 容器统一管理(“控制权反转”给 Spring)。
2025-09-15 08:25:00
677
原创 Spring MVC小点
mvn clean :这是 Maven 命令,作用是删除项目的 target 文件夹(里面是编译后的代码、打包文件等),相当于把后端的“临时缓存/编译产物”清掉,之后重新编译打包,保证运行的是新代码。1. 页面加载后,会自动发一个 GET 请求 到地址 /user/getLoginUser (这个地址是后端提供的接口,作用是“返回当前登录用户的名字”)。- 类比:就像你去游乐园,买票后工作人员给你戴一个“专属手环”,之后每个项目入口的工作人员看手环,就知道你是“已买票的游客”。
2025-09-15 08:16:30
608
原创 Spring MVC5
本节要围绕前后端交互(登录、留言提交等功能)、缓存清理、代码规范等 Java Web(Spring Boot 相关)开发内容展开,以下是详细解释和关键代码提取: - 作用:解决前端页面或资源不更新的问题(因为浏览器会缓存旧资源)。- 方法:- 强刷:按 ctrl + F5 ,强制浏览器从服务器重新拉取资源。- 清除浏览器缓存:手动删除浏览器存储的缓存文件(不同浏览器操作不同,如 Chrome 可在设置中“清除浏览数据”)。- 后端缓存清理(针对 Maven 项目):- 执行 mvn clean :删除
2025-09-15 08:06:33
978
原创 SpringMVC4
@Controller 、 @ResponseBody :这两个注解组合起来就是 @RestController ,所以 @RestController = @Controller + @ResponseBody。- 方法返回 index.html ,会跳转到 static/index.html 页面(默认请求路径是 index.html/index.htm/index.jsp )。这里设置 Content-Type 为 text/html ,然后写响应体。
2025-07-14 18:13:26
436
原创 SpringMVC3
本节从 JSON 传递、参数绑定、Cookie/Session 原理到代码示例,把 Web 开发中“数据传递”和“状态保持”的核心知识点讲透了。理解这些内容,你就能搞定前后端联调、用户登录态管理等关键需求。
2025-07-14 18:07:17
622
原创 SpringMVC2
本节从接口设计、SpringMVC 注解、JSON 转换到网络编程基础、参数绑定,把 Web 开发的核心知识点串了起来。理解这些内容,能帮你搞定接口开发、前后端联调、错误排查等问题,在实际项目中少踩坑。
2025-07-14 18:00:17
405
原创 SpringMVC1
本节从 Tomcat 基础、HTTP 状态码、Spring 家族关系、SpringMVC 流程、Maven 依赖、SpringBoot 项目创建、URL 映射到 Tomcat 与 SpringBoot 的关系,把 Java Web 开发的核心知识点串了起来。理解这些内容,能帮你打通从请求到响应的全链路,应对开发和面试中的问题。
2025-07-14 17:53:50
453
原创 Maven+Spring
在 IDE(如 IntelliJ IDEA)中可以设置 Maven 的本地仓库路径,本地仓库用于存储从远程仓库下载的依赖库,方便项目重复使用。
2025-07-14 17:40:43
486
原创 JS及CSS选择器
new</li>") 会在每个 <li> 元素之前添加一个新的 <li> 元素,内容为 "new"。例如 $("ul").prepend("<li>aaa</li>") 会在 ul 元素的开头添加一个 <li> 元素,内容为 "aaa"。例如 $("li").after("<li>new
2025-07-14 17:30:15
376
原创 HTML+CSS
以 border-width 为例,可以分别设置 border-top-width (上边框宽度)、 border-right-width (右边框宽度)、 border-bottom-width (下边框宽度)和 border-left-width (左边框宽度),也可以使用简写形式 border-width: 10px 5px 2px 1px;- 类选择器:通过元素的 class 属性来选择元素,以 . 开头,例如 .box 选择所有 class="box" 的元素。
2025-07-14 17:23:57
275
原创 javaEE1
选择器与操作:介绍了JavaScript中的选择器,如类选择器( class 前加 . )、标签选择器(如 p 、 div )、id选择器( id 前加 # ) 、通配符选择器和复合选择器。- 框架与学习方法:提到 SSH 、 SSM 等框架是实现了某些功能的半成品 ,强调通过练习实现记忆,学习中面试(包括笔试如算法、面试交流 )的重要性 ,还提及解决问题能力、分布式、集群等概念,以及涉及的部门如人力、财务、行政、法务等 ,提到开发中理解为主,以及 Ubuntu 系统。
2025-05-27 19:04:54
420
原创 java虚拟机2
模型过程:类加载时,先由子类加载器将请求委派给父类加载器,父类加载器依次向上查找,直至Bootstrap ClassLoader。新生代对象生命周期短,多采用复制算法,新创建对象放伊甸区,经过GC存活的对象进入幸存区,多次GC后仍存活的对象进入老年代。从GC roots(如栈上的局部变量、常量池里指向的对象、元数据区的静态成员等)开始扫描,能被访问到的对象标记为可达,不可达的对象则可被回收。- 标记 - 整理:先标记可回收对象,然后将存活对象向一端移动,再释放边界外的内存。
2025-05-26 18:59:00
1115
原创 java虚拟机
跨平台实现:Java通过JVM解决跨平台问题,官方提供适用于不同操作系统(如windows x86、windows arm等)的JVM版本。对上层Java程序代码写法统一要求,程序员只需编写一套代码就能兼容多种环境 ,JVM如同翻译官,虽降低运行效率但提高开发效率。- 语言生态与借鉴:Java之后很多语言引入虚拟机或运行时(如Python、JS等)。Kotlin、Scala、Groove等语言可编译成与JVM兼容字节码,借助Java生态。
2025-05-26 18:53:34
321
原创 HTTP3
定义:Referer请求头用于表示页面是从哪里来的,不是所有请求都有该字段。例如在页面跳转时,会带上Referer ,如 GET https://www.sogou.com/web?- 作用:主要给服务器看,用于广告平台统计流量来源等。比如广告主可通过Referer判断访问来源是搜狗还是百度等。
2025-05-12 18:58:00
898
原创 HTTP2
x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 ,可以从中解析出操作系统版本(Windows NT 10.0,64位系统 )、浏览器内核版本(AppleWebKit/537.36 )、浏览器版本(Chrome/135.0.0.0 )等信息。例如: POST https://gitee.com/login HTTP/1.1 ,body提交用户名和密码。幂等意味着同样的请求多次执行,结果是一样的。
2025-05-12 18:51:06
1022
原创 HTTP协议
一个URL包含协议(如https、http )、登录信息(认证部分,现在较少使用,如 http://user:pass@ )、服务器地址(域名或IP地址)、服务器端口号(http默认80 ,https默认443 ,可省略时浏览器会给默认值 )、带层次的文件路径(访问服务器资源的路径,如 /dir/index.htm , / 表示根目录 )、查询字符串(query string ,用于客户端给服务器传递参数,格式为 key=value ,多个参数用 & 分割,如?
2025-05-07 14:23:28
945
原创 测试 用例篇
测试用例(Test Case)是为实施测试向被测系统提供的集合,涵盖测试环境、操作步骤、测试数据、预期结果等要素。像新买电视后进行的开机、切换频道、调分辨率等操作,以文字表述就是简单测试用例示例。由于软件特性繁多,需编写测试用例来系统规划测试内容,并不断优化。
2025-04-30 14:20:44
344
原创 java网络原理6
ext=%7B%22s%24wiki_link%22%3A%22https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttps%2Fm.baike.com%2Fwikiid%2F7240009821926637572%22%7D&msg=sogou).com )时,电脑向DNS服务器询问域名对应的IP地址,DNS服务器返回(如1.2.3.4 ),电脑再通过该IP访问服务器。- 定义与特性:也叫物理地址,是数据链路层的地址体系,6字节长,由网卡出厂时设定,理论上每个设备唯一 ,但实际也可能出现相同情况。
2025-04-30 07:59:44
673
原创 java网络原理5
运营商路由器记录 IP 和端口的映射关系,如 NAPT(网络地址端口转换) ,当内网设备 A(192.168.0.10)访问外网服务器,源 IP 在内网是 192.168.0.10 ,经运营商路由器转换为外网 IP(如 5.6.7.8 ),同时记录端口映射(如源端口 1000 映射为新端口 1000 ),外网服务器响应时,路由器依据记录还原转发给 A。- 增强网络安全性,内网设备对外相对隐藏,外部设备无法主动访问内网设备(除非内网设备先发起访问建立连接 ),类似设备在有门禁的小区,黑客难以直接攻击。
2025-04-30 07:55:28
836
原创 java网络原理4
TCP协议包括确认应答、超时重传、连接管理(三次握手、四次挥手 ) 、滑动窗口、流量控制、拥塞控制、延时应答、捎带应答、面向字节流(粘包问题 ) 、异常情况(心跳包 )等核心机制。
2025-04-25 14:30:09
401
原创 java网络原理3
如果发送方发送速度过快,接收方处理不过来,数据就会在接收缓冲区堆积,甚至导致数据被丢弃,所以需要流量控制来协调双方的传输速率。发送方发送数据后,接收方会对收到的数据进行确认,并返回确认应答(ACK)给发送方。例如,主机A向主机B发送数据段1 - 1000,主机B接收成功后,会向主机A发送确认应答,告知下一个期望接收的数据序号(如1001) ,以此确保数据按序到达且不丢失。接收方根据自身处理能力,通过调整窗口大小来控制发送方的发送速度,比如接收方处理能力有限时,会减小窗口大小,让发送方放慢发送速度。
2025-04-25 14:20:34
1174
原创 java网络原理2
UDP报头格式简单,包含源端口、目的端口、长度、校验和。TIME_WAIT是主动发起断开连接一方进入的状态,等待连接彻底释放,时长为2倍MSL(网络上任意两点间传输消耗的最大时间 ,如Linux默认60s ),是为应对最后一个ACK丢包情况。- 确认应答:实现可靠传输的核心机制,发送方发送数据后,接收方返回“应答报文”(ack ),发送方据此感知接收方是否收到数据,未收到则采取措施。不同时间招聘收到简历数量不同,如9、10月可能收到几份,5、6月可能收到几百份,12、1月可能收到20份。
2025-04-23 15:58:32
1214
原创 java网络原理1
内容:接亲的车队,刚出发的时候是保持队形的,很快,队形就散了~~ 网络中,路口红绿灯 => 路由器交换机,一系列的数据包传输过程中,不一定是按照相同的路线转发的不同的路线,有的可能堵,有的可能通畅。为了解决上述问题,引入“序号和确认序号”对于传输的数据进行标识- 解释:通过接亲车队队形易散,类比网络数据包在传输中路径不同易出现混乱的情况。引入序号和确认序号来标识传输数据,便于有序处理和确认接收情况。
2025-04-23 14:26:28
549
原创 java网络编程2
约定内容:自定义协议主要约定通信的信息内容(如外卖程序中请求的用户信息、位置信息,响应的商家列表等)和通信数据的格式。- 数据格式类型:- 行文本方式:如“1234,5678,2025 - 04 - 17 21:25:00,hello;” ,可读性差,使用渐少。
2025-04-22 18:57:05
906
原创 java网络编程1
角色与交互模式:客户端(client)主动发起通信请求,服务器(server)被动接收通信并给予响应。如同生活中顾客向商家咨询商品信息,顾客主动询问,商家被动应答。常见交互为一问一答模式,不过也存在其他模式。- 多客户端服务:服务器通常要为多个客户端提供服务,类似一个大型超市要服务众多顾客。
2025-04-22 11:08:24
934
原创 Map&Set1
是特殊二叉树,对任意节点,若左子树不为空,左子树所有 key 小于根节点 key;若右子树不为空,右子树所有 key 大于等于根节点 key。- 查找类似二分方式,若根节点 key 等于查找 key ,返回 true;若根节点 key 大于查找 key ,在左子树查找;若根节点 key 小于查找 key ,在右子树查找。
2025-04-21 14:32:47
456
原创 java排序2
原理:顺序表插入,将一个数据插入到已经排好序的数组中的适当位置。- 时间复杂度:O(N^2)- 空间复杂度:O(1)- 稳定性:稳定排序。
2025-04-21 14:25:55
630
原创 java排序
时间复杂度:O(NlogN),建堆O(N) ,调整堆O(logN) ,共N - 1 次调整。- 时间复杂度:O(N^2),其中N 是数组长度,最坏和平均情况都是比较和交换接近N^2 次。- 时间复杂度:O(N^2),需进行N - 1 趟,每趟找最小值最多比较N - i 次。- 把堆顶元素(最大值)与待排序区间最后一个元素交换,将最大值移到已排序区间。- 把数组分为有序区间和无序区间,初始时有序区间为空,无序区间为整个数组。- 每次从无序区间找最小值,与无序区间第一个元素交换,使有序区间扩大。
2025-04-20 19:16:04
989
1
原创 java堆
Comparable:若队列中插入的是自定义类的对象,可让该类实现 Comparable 接口来定义比较规则。实现该接口需重写 compareTo 方法 ,此方法只有一个参数,是将 this (当前对象)与传入对象进行比较。- Comparator:当队列中插入的是 int 、 String 等基本类型包装类,或不想修改原类时,可实现 Comparator 接口。实现该接口需重写 compare 方法 ,该方法有两个参数,用于比较这两个传入的对象。
2025-04-20 19:07:20
628
原创 java二叉树&堆
非递归实现思路:起手式和中序一样往左找入栈,遇到 null 出栈,出栈时判断栈顶元素能否访问(无右子树或右子树已访问过才可访问根节点,否则从右子树继续重复过程)。5. 给定一个二叉树,找到该树中两个指定节点的最近公共祖先 :递归查询根节点、左子树、右子树,若 p 和 q 处于其中两个位置,此时根节点就是最近公共祖先。- 非递归实现思路:从根节点出发一路往左找,节点入栈,直到左子树为空,此时出栈访问节点,然后对该节点右子树重复此过程。3. 翻转二叉树:递归交换每个节点的左右子树。
2025-04-20 18:58:22
701
原创 java二叉树4
主要围绕二叉树相关操作展开,涵盖二叉树的构建(根据先序和中序遍历序列构建二叉树 )、查找二叉树中两个节点的最近公共祖先,以及二叉树的层序遍历等功能。
2025-04-18 16:03:59
784
原创 java二叉树2
3. 对于任意一棵二叉树,若叶子节点数为n_0 ,度为2的节点数为n_2 ,则n_0 = n_2 + 1。2. 在中序遍历中找到根节点,其左侧为左子树中序结果,右侧为右子树中序结果。- 功能:计算二叉树的高度(从根节点到最远叶子节点的最长路径上的节点数)。- 顺序:从根节点开始,逐层从左到右访问节点,借助队列实现。- 顺序:访问根节点,递归遍历左子树,递归遍历右子树。- 顺序:递归遍历左子树,访问根节点,递归遍历右子树。- 顺序:递归遍历左子树,递归遍历右子树,访问根节点。
2025-04-18 14:22:29
641
原创 java二叉树1
树是一种非线性结构 ,每个节点能延伸出多个子节点,每个子节点只有一个父节点。如文件目录结构,“此电脑”是根节点,磁盘分区、文件夹是子节点。- 介绍了节点的度(一个节点含子树的个数 )、树的度(树中节点度的最大值 )、叶子节点(度为0的节点 )、双亲节点、孩子节点等概念。
2025-04-18 08:02:59
1036
原创 java栈&队列2
队列:也是线性表,特点是先进先出(FIFO),数据从一端(队尾)进入(入队列,offer/add ),从另一端(队头)出去(出队列,poll/remove )。- 节点类型:包括根节点(如“此电脑”“学校” )、叶子节点(没有子节点的节点 )、非叶子节点(有子节点的节点 )。还有双亲节点(父节点 ),如A是D的父亲,D是H的父亲,A是H的爷爷节点。- 栈:是一种特殊的线性表,操作受限,只能在一端(栈顶)进行插入(入栈,push )和删除(出栈,pop )操作,遵循后进先出(LIFO)原则。
2025-04-18 07:57:20
535
原创 java栈&队列1
原理:通过两个栈实现, stack1 保存正常进出栈元素,提供 push 、 pop 、 top 方法功能;stack2 保存当前 stack1 中的最小值,确保其栈顶元素始终是最小值。- 代码示例。
2025-04-16 17:42:21
680
原创 java链表&栈
简单方法:遍历链表,用 List 存储已访问节点,若当前节点已在 List 中,则链表有环,时间复杂度为 O(N²),空间复杂度为 O(N)。- 双指针法:定义快慢指针,快指针每次走两步,慢指针每次走一步。若链表无环,快指针会先到达链表末尾;若有环,快指针会追上慢指针,二者相遇,时间复杂度为 O(N),空间复杂度为 O(1)。
2025-04-16 10:48:23
634
原创 java链表2
通过跟踪 next 指针能再次到达某个节点时,链表存在环,评测系统用整数 pos 表示链尾连接到链表中的位置(索引从 0 开始 ), pos 不作为参数传递,仅用于标识实际情况,且不允许修改链表。若链表无环,两指针不会重合;先分别求出两个链表的长度,创建两个引用指向头结点,让较长链表的引用先走,走的步数为两链表长度差值,然后两个引用同时走,每次走一步,若相遇则链表相交。找到链表中间节点,将后半部分链表反转,比较前半部分和反转后的后半部分是否相同,忽略长度比较,只要其中一个子链表结束,比较就结束。
2025-04-16 10:40:53
557
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人