自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Git学习

解决冲突的方法: 1. 在每次提交之前先拉取 2.如果两个人同时修改了同一行代码,这时后提交的就会报错, 此时有三个选择: 选择旧版本 选择前一个人的 选择后提交的 要找他商量。get log 的操作可以获取提交信息, 每次提交会给一个版本号, 可以使用这个版本号进行回溯。注意 -m 参数必须要加, message, 是对commit的描述。注意: 是将指定分支合并到当前分支。

2025-03-15 21:44:55 351

原创 Spring

context: component-scan base-package="Bean所在的包路径" />Spring会扫描这些包中的所有类,以获取Bean的定义信息事务管理主要是三个核心接口:1. PlatformTransactionManager接口:主要用于管理事务2. TransactionDefinition接口:是事务定义(描述)的对象,该对象中定义了事务的规则,并提供了获取事务相关信息的方法.

2025-03-13 22:47:02 684 1

原创 Spring MVC

有些特殊类型的参数无法在后台进行直接转换,如日期, 这就需要开发人员自定义转换器(Converter)或者格式化(Formatter)来进行数据绑定.

2025-03-13 22:46:49 1230

原创 MyBatis

数据持久化概念:数据持久化是将内存中的数据模型转换为存储模型。

2025-03-13 22:46:33 1185

原创 ssm框架整合

MyBatis负责ORM(pojo)Spring负责Bean的管理(dao, service)SpringMVC负责响应视图的操作(controller)SpringMVC是Spring的一部分Spring MVC和MyBatis没有关系三者中Spring相当于是粘合剂将MyBatis和SpringMVC整合起来。

2025-03-13 22:46:24 349

原创 BIG_EVENT

对于使用次数超过两次的代码一般都会进行封装或者编写拦截器对于内容的展示会封装成函数后在script标签中执行进行渲染相当一部分的数据都写成响应式数据, 对于json格式的数据使用的非常普遍有专门的文件夹对应utils, api, view要注意script标签中函数执行的先后顺序, 函数调用可能存在数据的依赖关系(比如说, A函数从后台获取数据, B函数需要使用获取到的数据, 那么B函数就需要放在A的后面调用)开发步骤: 1.页面的搭建: 去到Element Plus官网查找相应的框架。

2025-03-13 22:45:51 810

原创 Java网络多线程

这是客户端的一个请求, 在一个方法中发送Message, Message中声明的信息类型, 服务端针对信息类型得知是一个返回在线用户的请求, 然后通过集合获取所有在线用户,处理成String, 然后放在Message中通过ObjectOutputStream返回客户端.可以利用这种技术将文件都放在服务器的磁盘中, 然后对于接收端发送请求,服务端发送对应的文件,接收端对文件进行接收处理, 我想像一些歌曲视频播放的软件或网站应该就是这样实现的.(文件源放在服务器中, 接收端发送请求来获取文件).

2025-03-13 22:44:32 764

原创 Redis项目_黑马点评

对于数据库的修改操作是比较耗时的, 所以将库存和一人一单的校验利用redis优化, 然后对于数据库的写操作另起线程做, 因为此时对于写的时效性没有要求, 这样就能提高整体的效率.基于jvm的阻塞队列存在内存限制问题每当重启或出现宕机时阻塞队列中的数据就会消失, 或者当从阻塞队列中拿到数据, 但是在做处理时出现异常也会造成数据安全问题。

2025-03-13 22:44:16 1149

原创 SpringBoot

注解作用:用于标记一个类为 Spring MVC 的控制器,处理 HTTP 请求。返回值默认情况下,返回的是一个视图名称(View Name),Spring 会根据视图名称解析为具体的视图(如 JSP、Thymeleaf 等)。如果需要返回 JSON 或其他格式的数据,需要配合注解使用。适用场景:适用于传统的 Web 应用,返回 HTML 页面或视图。

2025-03-13 22:42:48 853

原创 Redis

2025年1月17号晚。

2025-03-13 22:42:13 1318

原创 Java核心技术卷1

Unicode编码: \u000~\uFFFpublic static void main(String\u005B\u005D args) //是完全合法的 因为\u005B\u005D分别代表:[和]Unicode转移序列会在解析成代码之前处理 比如: "\u002+\u0022" 并不是一个由引号(\u0022)包围加号+构成的字符串, 实际上, \u0022会在解析之前转换为",这会得到""+"",也就是一个空串更隐秘的,一定要注意注释中的\u 比如: // \u000A is a newline

2025-03-13 22:41:18 1529

原创 Controller方法请求类型和参数

当接受对象是一个自定义的对象时, 比如User对象, 有name, password等属性, 在通过QueryString传递时, 会自动的将User中与之对应的属性赋值, 没有传的属性为null。require属性默认为true, 也就是说必须要传递id这个参数, 但是当required属性设置为false, 则表示不是必须的, 可以不传。这两种方式都行: 1. 多行的name, 2. 一行name, 在value中多个值, 用逗号隔开。简单的说: get请求的参数是在url后面的。

2025-03-13 22:40:27 785

原创 Spring Cloud

很多企业要求不在业务层编写SQL, 但是mp只擅长where条件的生成将其通过docker部署在Linux上面, 具体的操作看参考文档关于Filter的执行顺序,要实现一个Order接口, order的值越小优先级越高.

2025-03-12 11:02:45 1464

原创 Vue3+Element plus

把函数写在vue文件中是难以复用的, 更好的做法是把经常使用的函数卸载js文件中,然后在vue文件中导入. 接口调用的js文件里面的函数的名字一般都是以service结尾, 例如, articleGetAllService。注意: 1. 函数的前面的export关键字, 在Html 的 import中{}中间的是需要导入的内容, 后面是js文件所在的路径。通常在api中是不写同步的,,因为拦截器中的axios为异步的, 在vue文件中添加async 和 await来同步等待结果即可。

2025-02-12 14:42:29 795

原创 MYSQL学习笔记

在默认情况下,当查询两个表时,会将第一个表中的一行和另一个表中的每一行组合,返回结果,包含两张表的所有列,一个返回的记录数是两张表的行数乘积,这样多表查询默认处理方式返回的结果, 称为笛卡尔积`在RAND()中添加一个数字时将产生一个固定的随机数, 例如 : RAND(3) 不添加数字, 只是RAND()时,每次执行都会产生不同的随机数。不同的数据库用户登录到DBMS后根据相应的权限可以操作的数据库和数据对象(表, 视图,触发器)是不同的。MySQL中判断是否相等是一个等号'=', 不等有两种 :!

2024-11-03 09:39:29 1583 1

原创 Linux学习笔记

九月二十六号:三种网络连接的区别:克隆的虚拟机文件可以放在另一台电脑上一样使用查看linux IP地址的指令: ifconfig 查看ens33对应的通过Xshell输入reboot会使linux重启 pwd: 显示当前在哪个目录下返回的是第一次登录时的信息当创建一个用户没有指定组时,会生成一个和用户名一样的组,将此用户放进去// 找回密码的章节未记录 hsp发的文档有案例:结束at命令的输入需要输两次IP要在同一个网段才能进行通讯tomcat在Linux上部署完成意味着可以通过windows上的浏览器访

2024-11-03 09:39:18 648

原创 正则表达式

正则表达式(regular expression | regexp)技术是对字符串执行模式匹配的技术java使用正则表达式的流程: 使用到的两个类: Pattern, Matcher。

2024-11-03 09:39:09 220

原创 java集合

集合的使用非常简单, 重要的是底层的实现逻辑@抑制所有警告 SupperssWarings({"all"})单列集合:实现了collection接口的都可以使用iterator.当我们退出iterator的while循环后,iterator此时指向集合的最后一个元素,如果还想使用,需要重置,即iterator = col.iterator();Object obj = iterator.next(); //其编译类型是Object 运行类型是ArrayList增强for循环是简化的iterator遍历方式.

2024-11-03 09:38:58 339

原创 java_IO流

写入的三种方式: 1.写进单个字符 2.写入一个字节数组(将字符串用getbytes转换为字节数组) 3.将字节数组的子串传入。其中写入流时,一定要用图示方法, 不能直接将b传进去,因为可能读取到的字节数不是1024, 这样就会出错.read(byte[ ] b) 返回的是读取到的字节个数 如果为空则返回-1。用此类向文件写入数据时,如果文件不存在会自动创建文件, 前提是目录以经存在。二进制文件: 图片, 视频, 音频,word文档, PDF文件。其中的new String()是一个没见过的构造器。

2024-11-03 09:38:44 418

原创 线程(java)

在我们的电脑中并发和并行可能同时存在。

2024-11-03 09:38:27 478 1

原创 JDBC学习笔记

九月十八:虽然能驱动了,但是仍然不知道当时为什么不能驱动, 8.0以上会自动驱动, 也就是说只需要做好connection和statement。

2024-11-03 09:37:56 929

原创 python内容保存到excel

cvs文件: 逗号分隔值(Comma-Separated Values, CSV, 有时也称为字符分隔值, 因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).当我们使用CSV文件存储数据时,一定要注意被存储的数据的格式, 如果是一些中文片段, 里面包含有一些逗号,此时分隔符如果还设置为逗号,再次读取此CSV文件时就会乱掉 .with open (r"文件地址后缀为csv", 'w', newline = '') as f:#如果不设置newline,默认是换行。

2024-08-09 16:01:19 1749

原创 爬虫基础2

一次浏览一次Cookie,例如: 登录前的Cookie和登录后的信息, 未设定Cookie信息爬取登录后的QQ空间时得到的HTML文件,打开是为登录页面,而不是已经登录过的页面, 因为登录前后的Cookie是不同的,此时服务器会认为你没有登录进去。1.User_Agent: 浏览器的名称.向服务器发送请求时,服务器通过此参数了解是从何种浏览器发出,以便返回正确的信息,必须设定这个参数,不设定这个参数,服务器就知道你是用python等工具来爬取数据,此时,服务器设置了反爬,就会拒绝你的请求。

2024-08-09 16:00:14 1178

原创 动态规划系列

利用dp二维数组来存储已经计算好的字符串来减少巨量计算量,动态规划中的dp数组的初始化比较不同设两字符串的长度分别为length1,length2,那么数组的大小应为length1+1 * length2 +1,第0行和第0列的分别表示i,j 到头是应该进行的操作数量,分别等于剩余的列数和行数,dp[i+1][j+1]要考虑四种情况:1.待比较的两字符相等;dp数组初始值设为1,如何来设计动态规划:判断此下标元素与之前所有下标元素的大小关系,可能就会产生一系列的新子序列,但是只选择最长的那一个。

2024-08-09 15:59:30 318

原创 JAVA学习笔记

局部变量和方法的参数都是被声明在方法中.他们是暂时的,且生命周期只限于被放在栈上的这段时间(也就是方法被调用至执行完毕为止).显式的调用父类的构造函数: super().,如果我们没有调用super(),编译器会帮我们加上super()的调用,父类的构造函数会调用它的父类的构造函数,一直到Object的构造函数为止.然后再一路执行,弹回到原来的构造函数为止.,不能在非抽象类中拥有抽象方法.,就算只有一个抽象的方法,此类也必须标记为抽象的.这会让服务器应用程序开始监听来自4242端口的客户端请求.

2024-08-09 15:58:57 762

原创 爬虫基础学习笔记

在起始和闭合标签之间放上链接对应的文字,展示给用户的就不再是原始直白的地址了 例如: <a href="链接地址">我的链接和和

2024-07-26 15:24:16 808

原创 Python基础学习笔记

写测试代码 : 写一个开头为Test的类表示为测试用的类 继承unittest.Testcase,这样就能使用继承则这个类的各种测试功能, 在这个类下面可以定义不同的测试用例,每个测试用例都是类下面的一个方法名字必须以test_开头,因为因为unittest这个库会自动搜索以test_开头的方法,并且只把这个当成测试用例。放可能产生错误的语句。元组可以作为健 例如 : address_list = {("小明" ,23):"123" , "警察" : "110"}

2024-07-24 11:11:27 616

原创 用IDEA创建jar文件

首先点击文件选择: open Module Setting 选择Artifacts建立一个JAR 然后选定主类。就会创建一个MANIFEST.MF文件(这个文件是用来指定主类的(含main方法的类))点击build中的Build Artfacts中的Build。等待建造完成后会在out中的artfacts中有个JAR文件。

2024-07-21 17:15:04 260

原创 模版与泛型编程

函数模版:模版定义以关键字template开始,后跟一个模版参数列表,这是一个逗号分隔的一个或多个模版参数的列表,用“< >”包围起来。模版参数表示在类或函数定义中用到的类型或值。当使用模版时,我们(隐式或显示地)指定模版参数,将其绑定到模版参数上。实例化函数模版:编译器用推断出的模版参数来为我们实例化一个特定版本的函数。当编译器实例化一个模版时,他使用实际的模版实参代替对应的模版参数来创建出模板的一个新“实例”。一般来说,我们可以将类型参数看做类型说明符,就像内置类型或类类型说明符一样使用。

2024-04-17 18:48:29 1087

原创 面向对象程序设计

面向对象程序设计(object-oriented programming)的核心思想是数据抽象、继承和动态绑定。通过使用数据抽象,我们可以将类的接口与实现分离;使用继承,可以定义相似的类型并对其相似关系建模;使用动态绑定,可以在一定程度上忽略相似类型的区别,而以统一的方式使用它们的对象。在C++中,基类将类型相关的函数与派生类不做改变直接继承的函数区分对待。对于默写函数,基类希望它的派生类各自定义适合自身的版本,此时基类就将这些函数声明成虚函数(virtual function)。

2024-04-17 18:04:33 786

原创 重载运算与类型转换

前置和后置版本使用的是同一个符号,意味着其重载版本所用的名字将是相同的,并且运算对象的数量和类型也相同。相反,通过值捕获的变量被拷贝到lambda中,因此,这种lambda产生的类必须为每个值捕获的变量建立对应的数据成员,同时创建构造函数,令其使用捕获的变量的值来初始化数据成员。因为也可以调用这种对象。如果定义了显示的类型转换运算符,编译器通常不会将一个显示的类型转换运算符用于隐式类型转换,该规定存在一个例外:即如果表达式被用作条件,则编译器会将现实的类型自动转换应用与它,即显示的类型转换将被隐式地执行。

2024-04-11 21:10:38 1120 1

原创 拷贝控制总结

所有五个拷贝控制成员应该看作一个整体:一般来说,如果一个类定义了任何一个拷贝操作,它就应该定义所有五个操作。移动迭代器:解引用运算符生成一个右值引用,通过调用标准库的make_move_iterator函数将一个普通迭代器转换为一个移动迭代器。

2024-04-11 21:10:16 681 1

原创 第十四章文本查询程序再探-总结

Query为唯一的接口,,有一个变量存储着Query_base类型的智能指针,接受两种初始化方式:1.直接传递一个Query_base类型的智能指针,2.传递一个string对象,动态构造一个Word_base对象存储在变量中。Word_base的eval和rep函数很简单,就是对给定单词在TextQuery中调用query函数进行查询,然后将结果存储在一个set中,最后构造一个ResultQuery类(用rep的返回值,set和给定文件)。对于OrQuery类,关键是对两个给定单词得出的set进行合并。

2024-04-07 22:34:20 391

原创 C++标准库、顺序容器、泛型算法、关联容器、动态内存

IO类:IO对象无拷贝或者赋值,因此我们也不能将形参或者返回类型设置为流类型。因此,进行IO操作的函数通常以引用的方式传递和返回流,读写一个IO对象会改变其状态,因此传递和返回的引用不能是const的。一个流一旦发生错误,其上后续的IO操作都会失败。只有当一个流处于无错状态时,我们才可以从它读取数据,向它写入数据。由于流可能处于错误状态,因此代码通常应该在使用一个流之前检查它是否处于良好状态。IO流被置位通常意味着流对象的状态发生了改变。缓冲机制:每个输出流都管理一个缓冲区,用来保存程序读写的数据。

2024-03-25 22:36:56 618

原创 C++基础——类(2)

在类的外部,成员的名字被隐藏起来了,一旦遇到了类名,定义的剩余部分就在类的作用域之内了,另一方面,因为返回类型的名字在类名之前,所以当成员函数定义在外面时,返回类型中使用的名字都位于类的作用域之外,当然返回类型之前也可以加上类名,使返回类型也在某种类的作用域内。静态成员的类内初始化:即使一个常量静态数据成员在类内部被初始化了,通常情况下也应该在类的外部定义一下该成员。封装是类的成员不能被随意访问的能力,通过把类的设计细节设置为private 就能完成类的封装,封装实现了类的接口和实现的分离。

2024-03-10 21:44:56 983 1

原创 二分搜索算法与滑动窗口算法

二分搜索算法的思路很简单,但是细节比较烦人。二分查找算法的基础常用场景:1.寻找一个数;2.寻找左侧(右侧)边界主要有两种算法细节区别:1.right = nums.length - 1;对应的循环截止条件有区别:left <= right;left < right.因为对应的运算空间不同:一个是两边都闭合,一个是左闭右开。

2024-01-14 16:24:25 604 1

原创 BFS算法套路框架与双指针技巧套路框架

方法:从图的某一节点开始,首先依次访问该节点的所有邻接节点,再按照这些顶点被访问的次序依次访问与它们相邻的所以未被访问的节点,重复此过程,直至所有节点均被访问为止,利用队列是经常的,类似于树中的层次遍历,一层一层的遍历,经常用于求最短路径问题。

2024-01-13 23:04:26 559 1

原创 学习算法基础内容

求二叉树的最大路径和,基本框架是二叉树的遍历,此题为后续遍历,因为最大路径不一定过根节点,所以要设定一个变量用来随时更新最大路径和,int ans = INT_MIN;节点的基础结构是此节点、左右子树,所以有四种路径:此左右,此右,此左,此;此就是此节点,所以要用max函数来判定左右子树与0的关系,但是此节点本身不用判定(初始值设为INT_MIN的原因)。设left和right来存储左右子树的最大路径和,则此节点的最大路径和就是:val+right+left,称为lmr;

2024-01-08 23:20:43 522

原创 C++基础——类(1)

不同的编程角色:程序员们常把运行其程序的人称作用户(user)。类似的,类的设计者也是为其用户设计并实现一个类的人;显然,类的用户是程序员,而非应用程序的最终使用者。类的作者常常需要定义一些辅助函数,比如add、read和print 等。尽管这些函数定义的操作从概念上来说属于类接口的一部分,但是它们实际上并不属于类本身。我们定义非成员函数的方式与定义其他的函数一样,通常把函数的声明和定义分开来。如果函数在概念上属于类但是不定义在类中,则它一般应与类声明(而非定义)在同一个头文件中。

2024-01-02 23:03:27 398

原创 C++基础——4.函数

当形参有顶层const时,传给它常量对象或者非常量对象都是可以的,或者说,形参的顶层const属性只是用来限制形参,即不能通过形参来改变传入的拷贝值或者实参本身(当引用或者指针时),对于实参是否具有顶层const属性没要求。因为数组的大小是构成数组的一部分,所以只要不超过维度,在函数体内就可以放心的使用,但是者也具有一定的限制作用,我们只能将函数作用于定义大小的数组。把函数不会改变的形参定义成(普通的)引用是一种常见的错误,这么做会带给函数的调用者一种误导,即函数可以修改它的实参的值。

2023-12-30 15:25:08 1158 1

空空如也

空空如也

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

TA关注的人

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