- 博客(48)
- 收藏
- 关注

原创 Vue-cli搭建项目
Vue-cli是Vue.js官方提供的脚手架工具,用于快速生成Vue项目模板,简化开发流程。使用Vue-cli前需安装Node.js和npm,Node.js是JavaScript的运行环境,而npm是Node.js的包管理工具。通过Vue-cli创建项目后,项目结构包括node_modules、public、src等目录,其中src目录包含应用的主要代码。在项目中,可以通过配置vue-router来管理路由,实现单页应用中的组件切换。创建并配置好项目后,通过npm run serve命令启动项目,检查是否搭
2025-05-20 17:51:25
866

原创 MyBatis框架
MyBatis是一款优秀的持久层(数据访问层)框架.MyBatis避免了JDBC代码手动设置参数以及手动获取结果集的操作,自动将ResultSet结果映射到对应的数据库表对象MyBatis可以使用XML或注解,将数据库中的记录映射成java对象就是将我们查询到的结果封装到我们与数据库表的对应对象的操作例如:在数据库中我们有一个学生表,我们用sql语句查询到一个学生,学生信息都保存在了ResultSet对象中,我们要将信息提取到我们对应的学生类中。
2025-04-18 18:49:39
1009
原创 Tomcat服务器
本文介绍了服务器的基础概念及前后端交互原理,详细讲解了Tomcat服务器的安装配置流程。内容包括:从官网下载Tomcat、设置JAVA_HOME环境变量、在IDEA中创建JavaEE项目并配置Tomcat服务器,以及通过startup.bat启动服务。最后说明了如何通过浏览器访问127.0.0.1:8080测试服务器是否正常运行,其中8080是Tomcat的默认端口号。全文提供了完整的服务器搭建指导方案。
2025-05-27 19:10:40
295
原创 idea中使用Maven创建项目
Maven是一款Apache开源的Java项目管理工具,通过POM对象模型简化项目构建流程。它具有管理依赖资源、标准化项目流程和统一项目结构三大功能。核心概念包括仓库(本地/远程/中央)和坐标(通过groupId、artifactId等唯一标识jar包)。安装时需要配置环境变量和本地仓库,建议使用阿里云镜像加速下载。在IDEA中创建Maven项目时,需配置本地仓库路径和settings.xml文件,通过在pom.xml中添加dependency坐标即可自动下载所需资源。Maven有效解决了Java项目依赖管
2025-05-26 12:43:51
859
原创 Vue框架的基本介绍
Vue.js 是一款用于构建用户界面的渐进式 JavaScript 框架,专注于视图层,易于上手且能与现有项目无缝整合。它与 Angular.js 和 React.js 并称为前端三大主流框架。Vue 的优点包括体积小、效率高(基于虚拟 DOM 技术)、实现数据双向绑定、生态丰富且学习成本低。Vue 的搭建步骤包括下载 Vue.js 并在 HTML 文件中导入。Vue 的基本语法包括插值表达式(如 {{ message }})和指令(如 v-text、v-html、v-model、v-on、v-show、v
2025-05-13 19:31:05
772
原创 JavaScript-基础语法
1.通过let关键字声明,对象里面可以有变量和方法2.this关键字代表当前对象注意:在使用箭头函数定义方法时,this关键字并不指向当前对象,指向的时当前对象的父级age:10,gender:'男',
2025-04-28 20:17:48
1100
原创 MyBatis框架—xml映射
当我们设计多表查询或关联查询时,表中含有相同的字段名或要进行关联查询时,MyBatis无法智能识别如何处理映射结果,就需要我们进行手动映射。
2025-04-21 19:05:21
459
原创 java聊天室案例改进(建立与数据库的连接)
本篇博客在之前的聊天案例上加入了与数据库连接,将用户的账户和密码存储在数据库中,登录时验证用户是否创建账户,注册时验证用户是否创建已有账户。
2025-04-17 18:15:42
569
原创 Java语法篇—JDBC
1.简单来说jdbc就是java与数据库连接,是一种用于执行SQL语句的JAVA API2.由于市场上有很多不同的数据库,例如:mysql,SQLserve等等,如果每一种数据库都要JAVA官方来写对应的类或接口工作量很大,所以JAVA官方有了规范的JDBC接口,对应不同的数据库提供统一的方法,程序员只需要学习统一的方法,其他由数据库官方来写。
2025-04-16 20:19:41
936
原创 蓝桥杯—数字接龙(dfs+减枝)
一看就是迷宫问题的变种,从左上角到达右下角,要解决1.8个方向的方向向量,用dx,dy数组代表方向向量2.要按照一个规律的数值串进行搜索0,1,2,k-1,0,1,2......,这个好实现只需要在dfs方法中加入一个下一个数值的参数搜索就行3.核心减枝:斜对角线不能交叉(本题难点),这里用了一个四维数组来标记走过的对角线(x,y)->(xx,yy)代表从对角线连线,mark[x][y][xx][yy],mark数组只用于记录对角线连线由下图可知:在判断是否能进行对角线连线时只需要检测mark[x][b][
2025-04-07 23:07:35
1065
5
原创 第15届蓝桥杯java-c组省赛真题
就是一道思维数学题,只有能找出规律就能写出来,找不到规律暴力求解只能通过30%,向这种大数据范围的数学题一般都有规律,我们先把满足题目要求的解小范围输出看看有没有什么规律,像这道题输出1000以内满足条件的数据就可以看出来只有是2的整数次幂的数字都不满足连续整数相加相等这个条件,所以只需要判断给的数据有多少个是2的整数次幂就可以。首先把1x1的方块转换为2x2的方块,然后算出所有的2x2的方块,只需要对这个值求根即可,因为数据过大,剩余的几个方块可以忽略不计,最后乘以2即可(因为方块边长为2)
2025-04-06 17:51:57
1084
原创 算法—博弈问题
1.前提:每一步都是最优解的情况下,先手的那个人已经确定了胜负用dp数组记录每一步操作后的结果,如果下一步会出现必输结果,那么说明执行这步操作的人必胜,因为必输结果的下一步操作后都是必胜的结果,所以在每一步操作都是最优解的情况胜负在第一步的时候已经确定了。
2025-04-06 17:10:36
261
原创 蓝桥杯——星际旅行(bfs+邻接表优化)
分析:只要是能传送过去并且传送次数不为0,就算可以到达,所以这里不能用dfs来,很明显的bfs算法,分层遍历,每一层会消耗一次传送次数,但是本题的数据过大,如果使用邻接矩阵来作为visited数组那么时间复杂度过高,只能通过部分测试用例1.使用邻接矩阵遍历传送阵时间复杂度为O(n),假如有50万个星球,那么就需要遍历50万次2.使用邻接表寻找传送阵时间复杂度为O(1)
2025-03-31 18:56:49
293
原创 蓝桥杯—最少操作数
bfs算法求最短路径问题时,需要记忆化搜搜原因1.迷宫:防止后来的路径覆盖最短路径2.本题:防止重复计算已经计算过的路径,减少时间复杂度本题需要大量减枝,因为每次操作变化小,这也是为什么不能用dfs的原因,dfs算法也可以求解,不过时间复杂度很高,递归太深入了,比如说1到10000会进行9999次递归,时间复杂度是指数级的。
2025-03-25 16:30:30
179
原创 蓝桥杯省赛—扫雷
分析:就是扫雷游戏规则,很简单的一道bfs题目,将地雷入队搜索周围就行,需要注意的是,要先将地雷的数值初始化为比最大数据加1的值,要不然会和地雷数量重复,处理起来优点麻烦。
2025-03-24 19:01:50
194
原创 蓝桥杯—草坪(模拟+bfs分层处理)
分析:一眼bfs向上下左右四个方向扩散生长,典型的bfs算法,这里需要注意的是需要分层处理。1.一开始分层处理的思路有问题,分层逻辑混乱。
2025-03-24 18:12:08
333
原创 蓝桥杯—迷宫(bfs)
1.mark数组即作为保存数据的数组也作为判断是否遍历过的数组,先将mark数组全部初始化为空,否则会出现空指针异常,如果mark数组不为空说明已经有路径访问过这个地方,数组中保存的是最短路径,因为第一次赋值的也就是层数最少的路径,注意题目中规定了访问路径数据,要确保方向向量正确。分析:最短路径问题,给定一个迷宫,从左上角走到右下角,要求路径最短,并且要求字典序最小,也就是按照D,L,R,U,的搜索顺序去搜索,否则路径不是唯一的,除非题目中说明了最短路径唯一。
2025-03-22 15:53:17
381
原创 蓝桥杯—开心(思维+dfs)
隐式的回溯了,这里只有一个usedK不需要进行显式回溯,参数传递就可以,因为每一个递归都可以看成一个单独的线程,是独立的,传入的是usedK+1没有实际的改变当前的usedK,只是参数传递。分析:给定一个整数,能在这个整数的任意数位插入加号构成一个表达式,求这个表达式的最大值和最小值,那就暴力搜索所有可能结果,求出最大值和最小值。1.在dp和dfs求极值时,对初值进行极值化,让max最小,min最大,确保没有比min小的,没有比max大的。3.为什么没有回溯usedK?
2025-03-22 12:22:25
340
原创 蓝桥杯国赛—最大数字(dfs+贪心)
2.每一位数一定是有三种操作,加法,减法,不操作,dfs就是遍历所有可能,贪心算法减少了树的宽度,算是优化,所以有几种可能就需要几次递归,但需要注意回溯。首先要定义一个数组来存储每一位数,那我们肯定首先想到贪心算法,保证前几位数最大就可以。分析:给了一个整数n,能对其每一位数进行加或减操作,最后求最大的结果。1.没对最后一位进行操作。
2025-03-20 18:21:46
308
原创 数据库—sql语法基础
sql语言是一种数据库程序设计语言,用于存取数据以及查询,更新和管理关系数据库的语言DDL语言是用于创建和修改数据库表结构的语言DDL也叫数据操纵语言,专门用来处理数据。
2025-03-18 19:29:50
1309
原创 蓝桥杯——车牌(dfs全排列问题)
分析题目:要求6个位置,每个位置放一个数,不能连续三位相同,这些为约束条件也就是减枝函数的内容,最常规的dfs排列问题,只要减枝写对没什么问题。1.把题目中后三位只能是0-9忘记了 导致组合情况出错 粗心问题。
2025-03-16 18:46:27
204
原创 N皇后问题——dfs解法(回溯+减枝+深搜)
既然它落子没有规律,只有位置有约束条件,那么我们就可以根据位置来考虑,不能同一行,同一列,同一对角线,那么我们就可以一行下一个,然后判断同一列,同一对角线是否有棋子,同理按其中三个随便一个约束条件来进行搜索,只需要满足其他两个约束条件就可以。这是一道很经典的题,首先分析一下题目,就是在棋盘上下棋,但是同一行,同一列,对角线上不能有棋子,否则无法落子,那这些信息也就是约束条件,模拟这些信息就是减枝函数的内容。5.一开始的逻辑思考方向有问题,题目只给了约束条件,应该从约束条件进行思考,而非落子规律。
2025-03-16 16:37:00
382
原创 蓝桥杯国赛—1022玩具蛇
本题为一道程序填空题,要求我们将一个4*4的盒子填满,实际上就是遍历一个4*4的矩阵的所有可能路径这道题用bfs和dfs都可以,博主这里用的是dfs,用dfs找所有可能路径就需要在递归里进行回溯。一开始将减枝语句放在了sum++后面,导致将不符合条件的路径也计算了进去。四.第一次做时错误原因。
2025-03-16 14:50:27
228
原创 Java课设—聊天室(附带整套代码)
这里将accept写入死循环当中是因为,要持续监听是否有新的客户端,如果监听到了客户端就将他们加入arrayList中,arrayList当中每一个元素都Socket对象。这里必须将服务端监听消息写入线程中,其一是一个类中最多只能有一个死循环,其二,每一个连接到服务器端的客户端都需要被监听。包含:java基础语法,异常处理,IO流,网络编程,多线程,GUI界面,内部类,匿名类等,由于整体流程过大,我们进行分步编程,通过完成一步一步小任务,最后完成整个任务。显示在线人数,发布同告,查询聊天记录。
2025-03-13 20:07:09
1113
原创 力扣—79单词搜索(回溯算法)
1.一开始错误在于将dfs返回值定义为int类型,定义为int是因为index是基本数据类型,无法在传参过程中改变index的值,后面想着用int作为返回值,又犯了一个错,在递归回溯过程中,有可能没有递归到最后一个结果就提前return了。首先定义方向向量,来进行上下左右四个方向的搜素,遍历整个二维数组,如果对应的下标是单词的首个字母,那么就进行dfs遍历从当前位置的所有可能。4.参数的传递,像递归这种操作,最好将参数传递进行,不要使用全局变量,很容易在递归中发生错误,很难找。
2025-03-13 19:25:54
380
原创 蓝桥杯省赛—dfs算法
不要被“要崇拜的对象一定要坐在我们的右手边迷惑了”,什么时候能围城一个圈呢,只有当最后一个人与我们起始的那个人是一个人时才能围成一个圈,所以我们的输出判断语句条件也就是这个,并且只有当当前围成圈的个数大于我们记录的最大个数时才继续赋值。我们很容易想到对每一种可能进行枚举来解决这道题,那么dfs算法不就是通过回溯枚举出每一种可能的算法吗。3.判断递归位置来进行回溯,注意回溯一定是在递归语句的上面。2.设置得到答案的语句,这一步我觉得也是最困难的一步。回到这道题本身,要求我们找出能围城全的最大个数。
2025-03-08 18:57:15
303
原创 蓝桥杯java-B组真题—动态规划
可以通过暴力循环算出,但是我们每一次循环都需要重复计算当前第i个元素之前有多少种符合要求的子集,这样时间复杂度肯定是不能通过了,思考到这里我们就知道这道题可以使用动态规划的思想去解决,用一个数组来记录第i个元素前有多少种符合要求的子集,然后去思考之前的结果加上第i个元素会有什么变化,写出状态方程这道题目就解决了。通过题目我们可以知道是要求计算有多少子集,补集之和是偶数的问题,首先我们就需要考虑什么情况下子集,补集之和可以是偶数。集合本身之和为偶数说明集合中要么没有奇数,要么奇数个数为偶数。
2025-03-07 15:12:59
488
原创 JavaSE语法笔记
IO 中就提供了对象输入,输出流。方法的重写不能对构造方法,静态方法进行,方法的重写必须与父类方法的方法名,参数列表,返回值相同,子类重写的方法权限不能小于父类的方法权限,重写的方法需要与父类结构保持一致,访问权限不一样,大于等于父类权限。当子类与父类的方法实现不同时,可以在子类中对父类的方法进行重写,父类中的方法不能满足子类的需求时,可以在子类内部进行方法的重写,子类中的方法会覆盖父类中的方法但不会改变父类中的方法。对象是实际存在的,是类中的个体,对象是以类为模版,在内存中创建的一个实例。
2025-03-02 13:45:00
822
原创 Java(api中常用类,包括Object类,Arrays类,String类,基本数据类型包装类)
equals方法用于比较两个对象中的信息是否相等1.String类是java中专门用于处理字符串的类2.String类是1被final修饰的,其他类不能继承3.String类中,有一个char数组用来存储字符串的内容4.字符串的对象一旦创建后就不能改变了(因为char数组是被final修饰的),一旦值改变了就会创建一个新的字符串对象。
2025-02-16 19:53:54
721
1
原创 Java—语法篇7(抽象类与接口)
1.接口与类直接具有多态性,语法格式如下//接口//实现接口的类//用接口指向实现的接口的类的对象2.一个类实现接口必须将接口中所有的抽象方法进行重写,否则这个类就要定义为抽象类//接口//接口中的抽象方法public abstract void test(参数);//实现接口的类(将接口中的抽象·方法全部重写的情况)public void test(参数){//方法体//实现接口的类(没有重写接口中的抽象方法把这个类定义为抽象类)3.一个类可以实现多个接口。
2025-02-11 20:54:12
998
原创 Java—语法篇6(封装与继承)
面向对象语言有三大特征分别为:封装,继承,多态在本篇博客我们只介绍其中两大特征:封装和继承,多态将在下篇博客发布。
2024-12-30 14:36:44
761
原创 Java—语法篇5
作用:1.常在类中的方法或者构造方法中使用this关键字用来代表当前对象的成员变量,解决与局部变量重名问题2.使用this关键字用来引用方法或构造方法。
2024-12-24 18:21:41
384
原创 Java—语法篇4(面向对象)
类:是参考现实生活中的事物,将现实生活中的事物的特征和行为提取出来,是抽象的是概念上的定义对象:是实际存在的,是类中的个体,所以我们也将对象称为实例例如:我们将车看成一个类,那么宝马,奔驰就是对象我们举个例子,车类,那么我们需要将车的特征和行为表示出来类的声明格式为:[访问权限修饰符] [修饰符] class 类名{}//车的名称//车的颜色//车的价格System.out.println("名称:"+name+" 颜色:"+color);
2024-12-16 13:23:37
659
原创 Java—语法篇3
或int[] arryy2 = {1, 2, 3, 4, 5};概念:数组是一组相同数据类型的元素的集合,是一个引用数据类型,是一个对象,数组的地址是连续的,数组创建时必须指定长度且长度不可变。定义一个二维数组array[3][4]其实是3个长度为4的一维数组;for(数组元素的类型 临时变量名字 :数组的名字){第一种:数据类型[ ][ ] 数组名;第二种:数据类型 数组名[ ][ ];第一种:数据类型[ ] 数组名;
2024-12-12 19:26:21
641
原创 Java—语法篇2
if语句格式:首先:条件表达式必须是一个返回布尔结果的表达式。我们用一个实例来解释if语句例如:用if语句来判断成绩是否及格也就是说只有当条件表达式的逻辑值为true时,if语句才会执行if-else语句的另一种表现形式。
2024-12-09 16:03:53
1616
原创 Java—语法篇1
注意:在对long类型的变量初始化的时候,整型的字面常量是int要是超过int类型的长度会报错,需要在末尾加个L/l告诉编译器赋值的是long类型。>1 强制规则:标识符不能使用空格,不可以使用关键字和保留字,但可以包含保留字,允许使用26个大小写英文字母和下划线以及¥,数字不能开头。位运算符:是对整数的二级制位进行运算,正数移动后,符号位补0,负数移动后,符号位补1(>>,
2024-12-03 19:19:08
634
原创 Java运行环境的安装与配置
好了我们已经编写完成,现在只需要编译就可以运行了,打开命令行窗口,输入javac是编译对应文件,前提是需要进入你下载jdk的那个盘中才可以,进入后我们只需要输入javac hello(必须和文件名一样).java编译器就会将.java的文件编译成.class的文件,在文件夹中就会出现.class的文件。>首先程序员需要编写java源代码.java的文件,然后通过java编译器将.java的文件编译成.class的文件,然后运行时虚拟机会把.class的文件转换成机器码交给电脑运行,电脑只认识机器码。
2024-11-15 17:39:31
851
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人