自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 公告 建表

【代码】公告 建表。

2025-04-14 16:00:08 65

原创 课表显示---学生&&老师

1. 获取所有学院列表 /CourseSchedule/getCollegesjson: 2. 按学院查询班级 请求参数: 响应示例: 3. 按班级查询课程 /CourseSchedule/getCoursesByClass请求参数: 响应示例(周视图格式): 4. 月视图需要的原始课程数据格式需要处理一下那个时间字段

2025-03-30 17:52:18 183

原创 java01作业说明:

输入身高和体重:用户可以输入其身高(以米为单位)和体重(以千克为单位)。计算BMI:根据用户输入的身高和体重计算BMI值。健康反馈:根据计算出的BMI值提供健康状态反馈,帮助用户了解其体重是否在健康范围内。

2024-10-17 19:36:27 606 1

原创 音乐项目总结(终)

学了一些知识,html,css,javaScript前端三剑客,还有mybatis,servlet,axios,当时学的很慢,现在想想其实感觉自己就不会学习,看的很仔细,跟着一个个敲,太浪费时间了真的太浪费时间了,而且后面要写时也记不住,刚接触servlet封装的时候,也是傻傻的想去看懂一直研究那个,后来发现没必要,那个有模版,理解一下就行不用细扣。前期:当时觉得时间很充足,有布置算法题,我竟然还花三四天去学算法,,动态规划,背包问题之类的,没有规划好时间,等开始搞的时候发现已经落别人一大截了。

2024-09-30 01:24:36 752 1

原创 音乐项目,总结

今天的写的思路都挺简单的但是比较繁琐,这个查找,传文件的话可以了,但是没有用分片传送,然后在写音乐播放的处理,<歌单,二级评论,歌曲歌词滚轮播放>三个还没有实现,时间挺紧张的。然后再搞那个音乐播放,遇到了问题,加了标签和mp3,应该是可以放出来的,但是放不出来,还不知道是什么问题。可以成功从单元格跳转界面。是可以直接搜歌名和作者的。

2024-09-22 23:45:36 389

原创 总结

今天解决了一些bug,但都是细节问题:这个是之前一直存不了,后来发现是没有定义data,看我好久还挺无语的,我以为是后端发过来的有问题。有时候错的细节问题找半天真的是无语,出了这个今天有个bug没解决就是文件在后端那边的存储,来连下载都没下载好。然后就是传文件要用FormData,之前gsa讲过,但是忘记了,出错才知道,还是要认真听讲。然后就写了老师布置的spring boot项目去了没写太多音乐项目。

2024-09-20 01:04:02 509

原创 项目进度

变为负进度了,还是要用baseservlet,我就又重新写了一部分,看了好几遍视频,突然就想明白了,感觉每次要上课,就时间不连续思路总是断,今天晚自习算是搞懂了怎么写了,就是代码有点多,写的有点慢一开始那个构架也挺难理解的(对我来说)

2024-09-13 00:42:35 266

原创 项目答辩总结

少写一点增删查改的功能点,比如我那个粉丝和关注就不必要了,两费时间。找到项目的侧重点写,而不是像我之前一直在那纠结那个倒计时之类的。只使用doget方法,控制类直接继承了HttpServlet,没有用baseservlet,到后续会不好写。今天就是一直在改代码,又改成普通doget方法了,代码没什么好看的就不放了,然后对于今天的答辩我做了个总结。解决的问题:界面答辩时又跳转不了了,发现还是浏览器缓存问题,我检查了一遍没有错。,不然像我这种比较菜的肯定是写不好的。,用这个方法再重新写一遍登录注册。

2024-09-11 00:55:55 415

原创 音乐播放器

现在的进度是登录注册已完善,画了两个不完整的界面,登录注册忘记密码花费的时间太多了。写的很慢,又想写好,可惜不做为功能点挺可惜的,应该不要花那么多时间搞那个。比如那个“歌曲推荐”与盒子的间距,后面才知道原来不是调这个元素的位置,而是调盒子的内间距,还是因为界面有点复杂所以看的比较懵。遇到的问题:布局总是写不好,flex布局的有些性质可能我不太熟悉,总想调好看点但是调不好。今天写的感觉没有什么技术含量,就是太不熟练了,磕磕巴巴的。虽然代码很简单,但是真的很容易想错,而且ai会更奇葩,只能自己写了。

2024-09-09 00:20:13 276

原创 对与单纯post方法写项目的修改成baseservlet方法

我之前没听明白gsa讲的那些,然后自己写了注册,用的post方法,就是那个叫我们最好不要用有点low的方法,后面与别人交流后发现是要用baseservlet来写,叫他给我讲解了一下,然后自己问了一些ai慢慢的看了很多遍,才理清楚,发现还是要多问多思考,也要多交流,不然自己一个人写很难的。里的方法,就叫ai生成,然后自己多看几遍写上注释加深印象。(这里判断是否存在用户。还有些没来的急写,又双要重写了,因为方法用错了,,,难绷,但是幸好终于框架了解了,好菜啊难绷)

2024-09-06 02:04:07 499

原创 音乐项目

我用的是普通的的dopost方法,今天才弄明白 baseservlet 的用法,先交个总结等会再改成baseservlet方法。1.一些前端问题,触发函数之前有bug,然后用了内关联才正常,解决方法,一点点测试的。将获取验证码的消息发送给前端,再由后端发给前端。

2024-09-06 00:17:47 445

原创 音乐播放器javaweb项目近日总结,用js,css,HTML,servlet,mybatis来写注册登录忘记密码(还没写好)

这几天学了js,css,HTML,servlet,mybatis,还有axios,目前axios还没有用到,学的比较慢因为那个servlet,axios我看不懂,可能看懂了然后不会用,之后给我们上了一节课,感觉每一个东西单独拆开好像学过,但是放在一起听的很懵,今天我就到处翻博客反复看了点代码,终于知道了一点前后端交互就赶紧写了点。因为是小白所以写的有些感觉没必要写的比较详细方便自己记忆。

2024-09-03 23:03:56 686 1

原创 前端知识点

如果那个性别只能是单选的话要加上name属性。相邻选择器就是跟在被选中的里面的所有。js函数:就跟C语言差不多啊。

2024-08-25 20:24:19 290

原创 8.7,8.8群聊的创建 表情包发送 图片发送 群聊邀请好友

字段:GroupId 群id,GroupName 群名,CreatTime 创群时间,CreatUserId 创群的人,GroupAvatar 群头像。GroupId 群id,成员GroupMemberId,GroupContent 群聊天信息,ContentSendTime 发消息的时间。字段:GroupId 群id,成员GroupMemberId,MemberIdentity 身份,JoinDate 加群时间。3.申请入群的表groupapplication。

2024-08-08 00:54:03 222

原创 8.5,8.6总结

通过动态规划的思想,使用二维数组dp[i][j]表示在前i个物品中,容量为j的背包可以装的最大价值。我的理解,二分就是取一个点,使一条线段一分为二,线段左边不能满足性质,线段右边可以满足这个性质,如图(红色表示不满足性质,绿色表示满足性质)由于是整数二分,所以分界点有两个。当第i个物品的体积小于等于背包容量j时:dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i]]+v[i])。当第i个物品的体积大于背包容量j时:dp[i][j] = dp[i-1][j]。

2024-08-07 00:00:28 441

原创 8.3,8.4总结

这个渲染为了美观我做了很久花了好多时间,,,

2024-08-04 01:59:29 266

原创 7.31总结

可以这么理解:放了物品i,还剩下j - weight[i]的容量可以放其他物品,剩下空间能得到的最大值是dp[i-1][j-weight[i]],大的前提下是放物品i。这里分两步,dp[i-1][j-weight[i]]表示不放物品i的最大价值,后面还要加上放入物品i的价值value[i],总的来说就是放入物品i。注意这里的区间是0-i之间的物品,不放i,但是i-1放了,所以是dp[i-1][j],如果放了i的物品就要加上物品i的价值。放i:dp【i-1】【j-weight[i]】+value[i];

2024-07-31 23:16:38 321

原创 添加好友

则把要添加B的消息由服务端转发给B,在B处的循环线程也一直监听是否有人发送好友请求,如果有,显示在界面上,再同不同意,同意的话,在自己的好友列表上显示A好友,然后把B同意A的消息发送给服务端,再由服务端转发给客户端的A,此时A接收到B同意的消息,那么就把B显示在好友列表上。A给服务端发送要添加B的消息,服务端接受后,先把A添加B的信息存入数据库,再去个人信息表查看B是否在线。

2024-07-30 01:12:36 289

原创 7.28总结

今天就接着昨天把好友列表补全了一下,但是还是展示不出来,因为还要请求添加好友,对方同意申请等操作,还要判断对方在不在线,又是两种操作,有点麻烦,准备明天再写。

2024-07-29 01:12:59 262

原创 7.27总结,存头像,还有好友列表

这个处理跟更改普通资料不太一样,不是很难,就是有点绕,然后也很容易写错。:把更改的图片转为字节流,在我自定义的message类中,定义了//源文件路径,哪个文件进行传输。

2024-07-28 01:59:24 314

原创 7.26总结

然后将更改的图片路径存到了服务端的文件夹,文件名为id更方便获取图片,以便于再次登录使用,能保留之前的数据。2.在此基础上实现了编辑资料的功能,之前的编辑资料不够用完善,现在将所有数据存入数据库,1.我发现我的界面非常不符合要求,魔改了一下界面。编辑前:由于是注册进入,默认在线,qq号不可更改。编辑后:主界面实时刷新。

2024-07-26 23:56:56 280

原创 编辑资料

写了编辑资料,一开始发现怎么也更新不了界面,后面设置了许多的变量,在初始加载的时候就传过去。然后就是数据库的连接。

2024-07-26 00:31:46 143

原创 总结

这个简单的聊天室示例允许多个客户端通过输入消息与服务器进行通信,服务器会将接收到的消息广播给所有连接的客户端。客户端和服务器之间的通信是基于Socket实现的。确保将服务器地址和端口号与你的实际配置相匹配。

2024-07-24 00:22:24 172

原创 今日总结:雪花算法,拉取在线用户

拉取在线用户的思路:登录过后开启线程这就是在线用户,将其线程放入集合中管理,key为ID,遍历集合则可以获取到所有的在线用户。:最后,当迭代器遍历完所有键后,退出循环,并返回拼接好的。方法返回这个集合的迭代器,用于逐个访问集合中的元素。,即迭代器中是否还有下一个元素。字符串,其中包含了HashMap中所有键的列表。返回HashMap中所有键的集合,然后。:这是一个 while 循环,它的条件是。方法返回迭代器的下一个键,并将其添加到。的所有键的迭代器(iterator)。,用来存储遍历得到的所有键。

2024-07-21 22:49:54 364

原创 今日总结:雪花算法,倒计时,邮箱验证码......

3. 递增序列,如果处于同一毫秒内,递增序列则可以自增,保证ID的不唯一,自增ID最大12字节也就是2^12-1(4095),也就是说,一台机器,可以在同1毫秒内生成4096个ID(为0时也算一个),一秒就可以生成4,096,000‬个ID。生成出的ID是一个64bits的整数,其中时间戳占41位,数据中心ID占5位,机器ID占5位,自增序列占12位,还有1位是符号位。机器ID,相同的代码,相同的时间,相同数据中心,但机器ID不同,就不会生成出相同的UUID。JWT令牌[JSON web Token]

2024-07-18 22:28:12 678

原创 socket

1、基础用法,双向通信,发送消息并接受消息Socket的底层是TCP,不需要考虑服务端是否已经接收到消息,如果没有发送到服务器端是会抛异常的。Java的socket是一个全双工套接字,任何的输入流或输出流的close()都会造成Socket关闭。解决办法:使用socket.shutdownOutput()方法关闭套接字的输出流,使服务器知道输出流关闭,可以得到流末尾标志(-1)。同样,可以使用socket.shutdownInput()方法单独关闭套接字的输入流。

2024-07-17 00:31:09 976

原创 MySQL学习总结

因此,在我test1这个数据库里面,有两张表,一个是student,一个是user;字段1 字段1类型 [字段属性] [COMMENT 字段1注释 ],字段2 字段2类型 [字段属性] [COMMENT 字段2注释 ],字段3 字段3类型 [字段属性] [COMMENT 字段3注释 ],字段n 字段n类型 [COMMENT 字段n注释 ]) [表属性] [ COMMENT 表注释 ];2.MySQL对表结构的操作。1.MySQL对数据库的操作。1.展示某个数据库中的所有表。2.展示某个表的结构。

2024-07-15 00:28:02 334

原创 作业一:ER图 作业:二QQ项目思路 作业三:实现QQ的登录与注册界面

将基本信息如手机号码,验证码,还有已有的账号及账号相关信息等存入数据库中,登录方式为账号密码登录,还有忘记密码用邮箱验证码登录,注册为手机号及其验证码注册,注册好后将数据存入数据库(创建socket集合存入内,里面存了多名好友),找回密码需要手机号及其验证码,在数据库找到与其对应的qq账号密码。

2024-07-11 23:55:44 502

原创 7.9实验室总结 SceneBuilder的使用方法+使用javafx等

由于下错了东西,所以一直运行不出来,今天一直在配置环境,配置好了才学,所以没学多少,看了网课学习了SceneBuilder的使用方法还有了解了javafx是怎么写项目的,,是再制作一个界面,然后在第一个界面的代码中接收鼠标信息,去加载第二个界面,就跳转成功了。2.想要按按钮转页就在这里家fx。8.关闭界面(exitButton是需要自己写的)5.要把长宽都设置为和制作的界面一样的大小。3.**有红色是因为还没有建函数。6.点击按钮可以出现文件的方法。

2024-07-10 03:05:47 348

原创 io流 多线程

io流:存储和读取数据的解决方案打印出来的数据是一会1一会2的。

2024-07-07 22:27:58 658

原创 方法引用 异常 file

eg:表示引用run1类里面的sxxxx方法把这个方法当做抽象方法的方法体::是方法引用符。

2024-07-05 22:43:43 1228

原创 可变参数 Collections 不可变集合 Stream流

流是从支持数据处理操作的源生成的元素序列,源可以是数组、文件、集合、函数。流不是集合元素,它不是数据结构并不保存数据,它的主要目的在于计算。

2024-07-03 22:36:24 575

原创 APLjdk7时间 爬虫 正则表达式 迭代器遍历 lambda遍历 增强for遍历 Collection单列集合 map双列集合 map的三种遍历方式 HashMap TreeMap....等....

list有索引,但是方法用的是collection 接口里的,而collection是 list set vector 的共性接口,所以此时不能通过索引删除,只能通过元素的对象进行删除。//[1-9]是第一个数字是1-9,\\d是整数的意思。匿名内部类只是针对某一个接口的实例化对象,也就是不写接口的实现类,直接采用内部类的方式实现其中方法。String str = "Java自从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和Java11,"由键决定特性:不重复,无索引,可排序。

2024-07-02 22:54:32 1050

原创 动态规划之子序列问题,第十四次实验室总结(接第十三)

遍历顺序,其dp[i]=dp[i-1]+1里的i是依赖于i-1也就是从前向后推的,所以遍历顺序是从前往后推进的 for(int i=1;假设他们下角标从1开始,b【1】=1,可以从a中找到1,其角标为3,b【2】=2,可以从a中找到2,其角标为2,,,,,以此类推,则按刚才找出来的顺序a的角标为3,2,1,4,5,可知其最长连续子数列为2,4,5,为3位,则这两组数据的最长公共子序列为3。初始化:最长连续增子序列是以i结尾的,最少的最长增子序列为一,所以初始化为一就行了,dp【i】=1;

2024-03-02 19:48:54 374

原创 动态规划。第十三次

如下图,一个一个填上去会知道一整个流程是什么,分两种情况,一种是比对手多,则可以选择赢和不赢,比较赢和不赢那个大取哪个值,若比对手少只能输,则加上输的经验,并且每一个前面的都是算好的其最大的,所以不用去加很多层的了,直接去加一个就好了,就如if esle里面的语句。:用dp,用两个一维数组将数据分别存起来,然后dp【】里面的是时间,dp的值是最大价值,比较不采的与采药的价值取最大值,其中采药时的时间要花费了所以才会减去tim【i】【暂时还没有会优化后的方法,等会了再补上,先交一下总结吧】

2024-03-01 00:40:53 1090 1

原创 01背包,第十二次总结

可以这么理解:放了物品i,还剩下j - weight[i]的容量可以放其他物品,剩下空间能得到的最大值是dp[i-1][j-weight[i]],大的前提下是放物品i。这里分两步,dp[i-1][j-weight[i]]表示不放物品i的最大价值,后面还要加上放入物品i的价值value[i],总的来说就是放入物品i。注意这里的区间是0-i之间的物品,不放i,但是i-1放了,所以是dp[i-1][j],如果放了i的物品就要加上物品i的价值。放i:dp【i-1】【j-weight[i]】+value[i];

2024-02-28 00:39:47 503 3

原创 zyl第十一次总结,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

next数组的代码实在有一些难以理解(什么流程还是知道),不过还好代码就短短几行,可以记住。这题我看了很久都不知道结论怎么来的,只好记了。

2024-02-22 23:42:44 418 1

原创 zyl第十次总结。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

KMP算法的核心思想是利用已经匹配的部分信息来跳过不可能匹配的部分,从而减少不必要的比较次数。为了实现这一目标,KMP算法引入了“部分匹配表”的概念。在KMP算法中,当主串的某个字符与模式串的某个字符不匹配时,算法会根据PMT数组中的值跳过模式串中的一部分字符,从而继续匹配过程。这样,KMP算法能够在匹配失败时快速跳过不可能匹配的部分,大大提高了匹配效率。KMP算法是一种解决字符串匹配问题的经典算法,KMP算法的关键在于利用已经匹配的信息来避免重复匹配,从而提高匹配效率。构建部分匹配表(PMT)

2024-02-20 21:58:59 136

原创 zyl第九次总结,最小生成树

前面用prim写了第一题,感觉有点难,思路还好,就是不太会c++,里面的容器,函数不是很理解,当时生硬理解一下还是可以的。这次用kruskal写。思路:最小生成树的枝干数比结点数少一,只需将两点之间的长度排序就可以了,降序排序,取前结点-1个长度,再加判断条件相加然后输出一下就可以了。这两天学习了最小生成树。学会了 prim算法和kruskal。我觉得kruskal比较简单,因为有用到我前面所学的并查集。我觉得这题有点难,不过看了许久后还是理解了。这题没有什么好说的,模版题,跟第一题差不多。

2024-02-18 23:20:21 367

原创 zyl第八次总结

实现的算法思想:从Vo开始,总共需要 n-1 轮处理每一轮处理:循环遍历所有个结点,找到lowCast最低的,且还没加入树的顶点。再次循环遍历,更新还没加入的各个顶点的lowCast值。每次选择一条权值最小的边,条边的两头连通(原本已经连通的就不选)3.更新其他店到最小生成树的距离,重复直到所有点进入最小生成树。每次将代价最小的新顶点纳入生成树,直到所有顶点都纳入为止。1.找不在最小生成树的高最小生成树最近的点k。从某一个顶点开始构建生成树;2.将k加入最小生成树中。

2024-02-15 22:09:48 375 1

空空如也

空空如也

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

TA关注的人

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