- 博客(49)
- 收藏
- 关注
原创 Thymeleaf
1、创建一个 SpringBoot 项目2、编写跳转页面的 Controller3、student_list.html 页面在resources/templates目录创建一个student_list.html页面。注意,必须加上命名空间xmlns:th=“http://www.thymeleaf.org/”,否则Thymeleaf的自定义标签没有提示。问题:为什么thymeleaf页面放在templates文件夹里面,并且后缀要是.html呢?SpringBoot框架会将内置支持的功能组件放在
2025-09-14 22:45:22
1004
原创 SpringBoot
传统Spring开发缺点:1、导入依赖繁琐2、项目配置繁琐Spring Boot是全新框架(更像是一个工具,脚手架),是Spring提供的一个子项目,用于快速构建Spring应用程序。随着Spring 3.0的发布,Spring 团队逐渐开始摆脱XML配置文件,并且在开发过程中大量使用“约定优先配置”(convention over configuration)的思想来摆脱Spring框架中各类繁复纷杂的配置。
2025-09-14 22:38:28
1088
1
原创 SpringAOP
1、实现与具体的目标对象一样的接口,这样就可以是使用代理来代替具体的目标对象。1.代理对象和目标对象实现相同的接口,有一个目标对象就要有一个代理对象,会产生很多代理类,类太多。让目标对象和代理类实现同一个接口,目的是让客户端访问的时候代理对象和目标对象表现行为是一致。这其实就是一种保护(对目标对象的保护),控制对具体目标对象的访问,这个时候就由代理说了算。2、保存一个具体的目标对象引用,可以在需要的时候调用具体的目标对象的方法。2.代理对象的生成,是利用JDK API, 动态的在内存中构建代理对象。
2025-09-14 22:15:35
856
原创 SpringIOC
Spring优点:1、方便解耦,简化开发,IOC控制反转Spring 就是一个大工厂,可以将所有对象创建和依赖关系维护交给Spring2、AOP 编程的支持Spring 提供面向切编程,可以方便的实现对序进行权限拦截、运监控等功能3、声明式事务的支持(张三给李四转账,要么同时成功,要么同时失败)只需要通过配置就可以完成对事务的管理,而无手动编程4、方便集成各种优秀框架。
2025-09-14 20:04:51
984
原创 MyBatis多表
Student [id=2, name=zhangsan, age=12, gender=男, banji=Banji [id=1, name=java1807]]Student [id=4, name=王五2, age=12, gender=男, banji=Banji [id=2, name=java1812]]Student [id=1, name=张三, age=21, gender=男, banji=Banji [id=1, name=java1807]]一个学生只属于一个班级。
2025-09-14 18:39:16
247
原创 MyBatis
MappedStatement是MyBatis框架中的一个重要类,用于表示映射配置文件(Mapper XML文件)中的SQL语句。在MyBatis中,每个SQL语句都会被解析成一个MappedStatement对象,它包含了SQL语句的相关信息,如ID、参数映射、结果映射、SQL语句类型等。结果集的映射是 MyBatis 最强大的特性,对其有一个很好的理解的话,许多复杂映射的情形都能迎刃而解。5、Executor接口的执行方法中有一个MappedStatement类型的参数,封装了映射信息。
2025-09-14 18:32:13
1207
原创 SpringMVC
SpringMVC 是 Spring 框架的一部分,是基于 Java 的轻量级 Web 框架,遵循 MVC(Model-View-Controller)设计模式,用于构建灵活、松耦合的 Web 应用程序。它主要负责处理 HTTP 请求,实现前端与后端的交互。
2025-09-14 17:23:21
969
原创 验证码、MD5加密
md5是哈希算法,是单向的;而王教授做的工作是找到一个碰撞,从而就算不知道初始输入值也能得到相同的密文,这样就可以伪造数字签名。MD5(Message-Digest Algorithm 5),即消息摘要算法第五版,是一种被广泛使用的密码散列函数。散列算法的基础原理是:将数据(如一段文字)运算,变为另一段固定长度的值。尽管MD5在过去被广泛应用于安全领域,但随着时间的推移和计算技术的发展,MD5已经被证明存在严重的漏洞,特别是碰撞攻击。1.固定长度: 无论输入数据的长度如何,MD5始终生成128位的哈希值。
2025-09-14 16:14:22
302
原创 Layer、LayUI
关系:Layer 最初是 LayUI 的内置组件,后来被分离为独立库,可单独引入到任何项目中(不依赖 LayUI)。定位:经典的前端 UI 框架,由国人开发,主打 “极简模块化”,适合快速构建后台管理系统、企业级 Web 界面。基于 jQuery,提供了丰富的 UI 组件(表格、表单、弹窗、导航等),开箱即用。定位:独立的 Web 弹窗组件,是 LayUI 的 “核心成员”,也可单独使用。支持多种弹窗类型(信息提示、页面层、iframe 层、加载层等)。文档简洁,中文支持友好,学习成本低。
2025-09-14 16:06:08
584
原创 JSON、Ajax
定义:是一种轻量级的数据交换格式JSON是JavaScript Object Notation缩写特点:1.易于程序员阅读和编写。2.易于计算机解析和生成。3.其实是javascript的子集:原生javascript支持JSONconsole . log(this . name + '的年龄是' + this . age + '岁');} };console . log(this . name + '的年龄是' + this . age + '岁');} };
2025-09-14 15:28:11
1399
原创 JQuery
其是对Javascript封装的一个框架包,简化对Javascript的操作Javascript代码:获得页面节点对象、ajax元素节点对象实现、事件操作、事件对象JQuery代码:无需考虑浏览器兼容问题、代码足够少使用前期,JQuery侧重快速找到页面上各种节点。后期JQuery丰富了事件操作、ajax操作、动画效果、DOM操作等等。
2025-09-05 01:04:42
625
原创 JS初入门
2、由浏览器解释执行代码,不进行预编译。Java:编译型语言、强类型语言。JS:解释型语言、弱类型语言。1、直接嵌入HTML页面。解释型语言和编译型语言。
2025-09-04 21:57:31
173
原创 EL、JSTL
目的就是去掉JSP中的Java代码,都是以标签的形式表示,以标签的形式美工或者前端都可以修改,利于团队的合作。这套标签和Java语言无关。JSP核心语法:JSP表达式<%=%> JSP脚本<%%>JSP开发的原则:尽量在JSP页面少写甚至不写Java代码,Java代码放在Servlet。使用EL表达式来代替JSP表达式EL表达式的作用:向浏览器输出域对象(只能输出域对象)的变量或者表达式计算的结果。语法:${变量或表达式} ${list}
2025-09-04 21:44:37
263
原创 Cookie、Session、登录
软件中的会话1.链接到数据库Connection,也叫会话,你要想操作数据库要和数据库保持一个会话的功能。2.浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止会话技术分为Cookie和Session:1.Cookie:数据存储在浏览器客户端本地,减少服务器端的存储的压力,安全性不好,客户端可以清除cookie2.Session:将数据存储到服务器端,安全性相对好,增加服务器的压力什么是域对象?域对象就是存储数据的区域(其实就是服务器中一块内存区域)
2025-09-03 22:45:24
1111
原创 分页功能设计
limit 中offset代表偏移到哪个位置,rows代表往下数多少个。limit 偏移到那个位置offset,往下数多少个rowcount。1.封装一个分页类需要哪些信息(也是面向对象封装体现的很好的例子)每页有5条,取出第3页数据 limit 10,5。每页有5条,取出第2页数据 limit 5,5。分页代码在v3.bootcss.com网站中的“组件”下找到的。每页有5条,取出第1页数据 limit 0,5。做分页首先要规定每页有多少条。
2025-09-02 22:21:43
379
原创 MVC、三层架构
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。最简单的、最经典就是JSP(view) +Servlet(controller) + JavaBean(model)视图和逻辑隔离开来单一职责控制器是核心。
2025-09-01 23:12:47
1261
原创 GET、POST、添加、编辑
1.采用URL请求路径传输参数,参数拼接在URL后面2.参数传输过程中隐私性较差,直接在URL后面3.路径可以容纳的数据有限,只能传递少量参数4.form表单请求默认就是getname=zhangsan&age=12&gender=男Get方式传参,不是非得在form表单里面,可以手动写,在超链接的href里面直接在地址后面加?id=2。
2025-09-01 16:43:07
383
原创 深度学习入门:深度学习(完结)
正如大家能想到的,这样的方法需要按照像素数量进行相应次forward处理,因而需要耗费大量的时间(正确地说,卷积运算中会发生重复计算很多区域的无意义的计算)。R-CNN中会将图像变形为正方形,或者在分类时使用SVM(支持向量机),实际的处理流会稍微复杂一些,不过从宏观上看,也是由刚才的两个处理(候选区域的提取和CNN特征的计算)构成的。这个递归指的是神经网络的递归的网络结构。在R-CNN的前半部分的处理——候选区域的提取(发现形似目标物体的处理)中,可以使用计算机视觉领域积累的各种各样的方法。
2025-05-15 12:26:26
2012
原创 深度学习入门:卷积神经网络
而在实际的卷积运算中,滤波器的应用区域几乎都是重叠的。实际上,前面提到的使用了MNIST数据集的例子中,输入图像就是1通道、高28像素、长28像素的(1, 28, 28)形状,但却被排成1列,以784个数据的形式输入到最开始的Affine层。当时,第1层的卷积层的权重的形状是(30, 1, 5, 5),即30个大小为5 × 5、通道为1的滤波器。比如,空间上邻近的像素为相似的值、RBG的各个通道之间分别有密切的关联性、相距较远的像素之间没有什么关联等,3维形状中可能隐藏有值得提取的本质模式。
2025-05-14 11:41:41
1361
原创 深度学习入门:与学习相关的技巧
在这么困难的状况下,地面的坡度显得尤为重要。探险家虽然看不到周围的情况,但是能够知道当前所在位置的坡度(通过脚底感受地面的倾斜状况)。于是,朝着当前所在位置的坡度最大的方向前进,就是SGD的策略。这里把需要更新的权重参数记为W,把损失函数关于W的梯度记为σL/σW。η表示学习率,实际上会取0.01或0.001这些事先决定好的值。式子中的←表示用右边的值更新左边的值。如式所示,SGD是朝着梯度方向只前进一定距离的简单方法。这里,进行初始化时的参数lr表示learning rate(学习率)。这个学习率会保
2025-05-12 10:08:50
774
原创 深度学习入门:神经网络的学习
神经网络的特征就是可以从数据中学习。所谓“从数据中学习”,是指可以由数据自动决定权重参数的值。机器学习中,一般将数据分为训练数据和测试数据两部分来进行学习和实验等。首先,使用训练数据进行学习,寻找最优的参数;然后,使用测试数据评价训练得到的模型的实际能力。为什么需要将数据分为训练数据和测试数据呢?因为我们追求的是模型的泛化能力。为了正确评价模型的泛化能力,就必须划分训练数据和测试数据。另外,训练数据也可以称为监督数据。泛化能力是指处理未被观察过的数据(不包含在训练数据中的数据)的能力。获得泛化能力是机器学
2025-04-15 15:41:27
1930
原创 深度学习入门:神经网络
神经网络的一个重要性质是它可以自动地从数据中学习到合适的权重参数。不像感知机那样,设定权重的工作,即确定合适的、能符合预期的输入与输出的权重,是由人工进行的。
2025-04-14 21:32:28
1165
原创 深度学习入门:感知机
从这篇文章开始我会记录我学习深度学习的过程,从0入门,写文章相当于学习笔记,同时也希望能对你们有所帮助。我将根据阅读《深度学习入门:基于python的理论与实现》的进程写学习笔记,以此巩固知识。我将在十五天内(如果时间充足,十天内即可)完成这本书的学习。
2025-04-12 23:00:45
977
原创 DFS入门
如果先访问左子树,那么会一直沿着左子树的路径向下访问,直到遇到叶子节点(没有子节点的节点)。例如,对于二叉树节点值依次为 1(根节点)、2(左子节点)、3(右子节点),深度优先搜索先访问 1,然后 2,此时 2 是叶子节点,就回溯到 1,再访问 3。它从起始顶点开始,沿着一条路径尽可能深地探索下去,直到无法继续,然后回溯到前一步,继续探索其他分支。比如在迷宫中,把每个岔路口看作一个节点,通道看作边,使用深度优先搜索可以找到从起点到终点的一条路径。从为0的格子走一步,必然走向为1的格子。
2024-12-20 11:23:13
395
原创 BFS入门
BFS 通常是指广度优先搜索(Breadth - First Search),它是一种图形数据结构的遍历算法。从给定的起始顶点开始,首先访问起始顶点的所有邻接顶点,然后再依次访问这些邻接顶点的邻接顶点,以此类推,一层一层地向外扩展搜索,就好像是水波纹一样,从中心向四周扩散。在这个过程中,先被访问到的顶点的邻接顶点会先被探索。
2024-12-10 23:02:43
1207
原创 动态规划、背包问题入门
动态规划是一种用于解决优化问题的算法策略,它的核心是把一个复杂的问题分解为一系列相互关联的子问题,并通过求解子问题的最优解来构建原问题的最优解。它将一个问题分解为若干个子问题,然后从最简单的子问题开始求解,逐步推导出更复杂的子问题的解,最终得到原问题的最优解。动态规划的关键是找到子问题之间的递推关系,以及确定合适的边界条件和初始值。动态规划通常需要保存已解决的子问题的答案,以避免重复计算,节省时间。
2024-12-03 16:57:50
1451
原创 数据结构——哈夫曼编码
哈夫曼编码(Huffman Coding)是一种用于无损数据压缩的熵编码算法。它是由大卫・哈夫曼(David A. Huffman)在 1952 年发明的。其基本思想是根据字符在数据中出现的频率来分配不同长度的编码,频率高的字符分配较短的编码,频率低的字符分配较长的编码,从而达到数据压缩的目的。
2024-11-25 20:57:32
5149
2
原创 数据结构——停车场管理问题
汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若停车场已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在其之后开入的车辆必须先退出停车场让路,待该辆车开出大门外,其他车辆再按原次序进入停车场,每辆停放在停车场的车在其离开停车场时必须按其停留的时间长短交纳费用。以栈模拟停车场,以队列模拟停车场外的便道,按照从终端读入的输入数据的方式进行模拟管理。输入1,表示车辆到达;
2024-11-25 20:30:20
836
原创 并查集--合并、查找、Kruskal算法
英文:Disjoint Set,即不相交集合;将编号为1到N的N个元素划分为若干个不相交集合,在每个集合中,选择集合中的某个元素代表其所在集合。合并两个集合查找某元素属于哪个集合。
2024-11-12 20:49:18
1014
原创 递推算法求解(为动态规划做铺垫)
递推算法是一种通过已知条件逐步推导出结果的算法。它利用一定的递推关系,从初始条件开始,一步步推出后续的结果,直到得到最终答案。其基本思想是通过已知条件和递推关系式,逐步推导出所求问题的解。当我们求解问题规模为n的问题时,不能只局限于从前几项的数据当中寻找规律,当题目的递归深度稍微深一些时,这种方法很可能就无法奏效了,因此我们需要学习递推求解的思想,掌握其基本思想和步骤,往往很多问题就能迎刃而解。首先,确认:能否轻易地得到初始状态的解?然后,假设:规模不大于N-1的状态已经得到解决。
2024-11-07 21:40:46
1339
原创 贪心算法基础学习
贪心算法是一种逐步构建解决方案的算法设计范式,其核心思想是“贪心”,即在每一步选择中,都采取当前状态下最优的策略,以期望通过这些局部最优选择来达到全局最优。它不从整体最优上加以考虑,而是通过一系列局部最优的选择来逼近全局最优解。需要注意的是,贪心算法并不能保证对所有问题都能得到整体最优解,但对于某些特定类型的问题,它确实能够产生最优解。从这一点来说,贪心算法不能算是一种算法,而是一种策略,只适用于解决某些特定类型问题的一种方法。
2024-11-03 03:04:20
1431
原创 数据结构-数组(稀疏矩阵转置)和广义表
数组是一种用于存储多个相同类型数据的集合,其元素在内存中连续存放并按照一定的顺序排列。这种有序性和连续性使得数组在访问时具有较高的效率。数组的特点包括所有元素具有相同的数据类型、可以通过索引快速访问任意元素、支持各种操作如遍历和排序等,并且数组的定义和初始化方式在不同编程语言中有所不同。int i,j;//该非零元的行下标和列下标ElemType e;}Triple;//非零元三元组表,data[0]未用//矩阵的行数、列数和非零元总数TSMatrix;int i,j;//该非零元的行和列下标。
2024-11-02 19:32:50
2142
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅