自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA刷题记录: 专题四 前缀和

【代码】JAVA刷题记录: 专题四 前缀和。

2025-04-07 22:42:15 116

原创 JAVA刷题记录: 专题三 二分查找

【代码】JAVA刷题记录: 专题三 二分查找。

2025-03-31 20:48:23 185

原创 JAVA刷题记录: 专题二: 滑动窗口

【代码】JAVA刷题记录: 专题二: 滑动窗口。

2025-03-28 14:59:07 161

原创 JAVA刷题记录:专题一 双指针

【代码】JAVA刷题记录:专题一 双指针。

2025-03-25 23:41:36 112

原创 平衡树基础

特点: 中序遍历是有序的;性质: 左子树 < 根节点;右子树 > 根节点;

2024-12-15 16:35:14 610

原创 C/C++ 查找算法

如果arr[mid] < x, min = mid + 1;如果arr[mid] > x, max = mid - 1;如果arr[mid] == x, 找到结果终止条件:min >= max。

2024-12-14 22:35:26 911 1

原创 C/C++ 排序算法

相同值的相对顺序不会进行改变;插入排序, 冒泡排序, 归并排序, 基数排序;

2024-12-11 23:26:47 1131

原创 C/C++ 堆和优先队列

如果完全二叉树中的根节点存储的值为当前树中所有值的最大值,在任意一个三元组(父节点,左子树,右子树),父节点的值永远是最大的,就叫。从后向前依次扫描拥有子节点的节点,然后对该节点三元组进行向下调整, 比较高效;依次把每个元素插入到堆中, 比较低效;2.将此操作看做是堆顶元素弹出操作;3.按照头部弹出以后的策略调整堆;1.将堆顶元素与堆尾元素交换;时间复杂度O(n);

2024-12-08 19:42:44 533

原创 Spring事务和事务传播机制

可重复读(REPEATABLE READ): 事务不会读到其他事务对已有数据的修改, 即使其他事务已提交. 也就可以确保同⼀事务多次查询的结果⼀致, 但是其他事务新插⼊的数据, 是可以感知到的. 这也就引发了幻读问题. 可重复读, 是 MySQL 的默认事务隔离级别.A⽅法运⾏时, 会开启⼀个事务. 当A调⽤B时, B⽅法本⾝也有事务, 此时B⽅法运⾏时, 是加⼊A的事务, 还是创建⼀个新的事务呢?记录操作⽇志, 插⼊⼀条数据(出现异常, 执⾏失败) (嵌套p1事务, 回滚当前事务, 数。

2024-12-01 23:46:55 1115

原创 Spring AOP

当切点定义使⽤private修饰时, 仅能在当前切⾯类中使⽤, 当其他切⾯类也要使⽤当前切点定义时, 就需要把private改为public. 引⽤⽅式为: 全限定类名.⽅法名()为其他对象提供⼀种代理以控制对这个对象的访问. 它的作⽤就是通过提供⼀个代理类, 让我们在调⽤⽬标⽅法的时候, 不再是直接对⽬标⽅法进⾏调⽤, ⽽是通过代理类间接调⽤.什么是⾯向特定⽅法编程呢?@Order 控制切⾯的优先级, 先执⾏优先级较⾼的切⾯, 再执⾏优先级较低的切⾯, 最终执⾏⽬标⽅法.什么是⾯向切⾯编程呢?

2024-11-28 20:40:09 917

原创 SpringBoot 统⼀功能处理

场景: 前⾯学习的slf4j 就使⽤了适配器模式, slf4j提供了⼀系列打印⽇志的api, 底层调⽤的是log4j 或者logback来打⽇志, 我们作为调⽤者, 只需要调⽤slf4j的api就⾏了.在拦截器当中,开发⼈员可以在应⽤程序中做⼀些通⽤性的操作, ⽐如通过拦截器来拦截前端发来的请求, 判断Session中是否有登录⽤⼾的信息. 如果有就可以放⾏, 如果没有就进⾏拦截.拦截器是Spring框架提供的核⼼功能之⼀, 主要⽤来拦截⽤⼾的请求, 在指定⽅法前后, 根据业务需要执⾏预先设定的代码.

2024-11-27 22:39:29 1179

原创 MyBatis-Plus使⽤

MyBatis-Plus ⽀持⾃定义SQL, 版本不低于3.0.7, 传递 Wrapper 对象作为参数时, 参数名必须为 ew, 在 SQL 语句中,使⽤ ${ew.customSqlSegment} 来引⽤ Wrapper 对象⽣成的 SQL ⽚段。MyBatis-Plus 是 MyBatis 的增强⼯具, 在 MyBatis 的基础上只做增强不做改变, 可以⽤更少的代码实现数据库表的CRUD, 让我们的开发变得更加简单.时, 指定了⼀个泛型, 这个UserInfo就是与数据库表相对应的实体类.

2024-11-26 15:48:09 944

原创 MyBatis 操作数据库(进阶)

之前的插⼊⽤⼾功能,只是有⼀个 gender 字段可能是选填项,如果有多个字段,⼀般考虑使⽤标签结合标签,对多个字段都采取动态⽣成的⽅式。注册分为两种字段:必填字段和⾮必填字段,那如果在添加⽤⼾的时候有不确定的字段传⼊,程序应。:动态的在SQL语句中插⼊set关键字,并会删掉额外的逗号. (⽤于update语句中)在xml映射⽂件中配置的SQL,有时可能会存在很多重复的⽚段,此时就会存在很多冗余的代码。只会在⼦元素有内容的情况下才插⼊where⼦句,⽽且会⾃动去除⼦句的开头的AND或。

2024-11-24 17:55:31 884

原创 MyBatis 操作数据库

程序启动时, 会在数据库连接池中创建⼀定数量的Connection对象, 当客⼾请求数据库连接池, 会从数据库连接池中获取Connection对象, 然后执⾏SQL, SQL语句执⾏完, 再把Connection归还给连接池.每次执⾏SQL语句, 要先创建⼀个新的连接对象, 然后执⾏SQL语句, SQL语句执⾏完, 再关闭连接对象释放资源. 这种重复的创建连接, 销毁连接⽐较消耗资源。但是这样的话, 只能查找id=4 的数据, 所以SQL语句中的id值不能写成固定数值,需要变为动态的数值。

2024-11-23 21:23:52 722

原创 Spring Boot 日志

监控现在⼏乎是⼀个成熟系统的标配, 我们可以通过⽇志记录这个系统的运⾏状态, 每⼀个⽅法的响应时间, 响应状态等, 对数据进⾏分析, 设置不同的规则, 超过阈值时进⾏报警. ⽐如统计⽇志中关键字的数量,并在关键字数量达到⼀定条件时报警,这也是⽇志的常⻅需求之⼀。引⼊⻔⾯⽇志框架之后, 应⽤程序和⽇志框架(框架的具体实现)之间有了统⼀的API接⼝(⻔⾯⽇志框架实现), 此时应⽤程序只需要维护⼀套⽇志⽂件配置, 且当底层实现框架改变时, 也不需要更改应⽤程序代码.

2024-11-20 22:21:26 907

原创 SpringBoot 配置⽂件

⽀持更多的编程语⾔, 不⽌是Java中可以使⽤, 在Golang, Python, Ruby, JavaScript中也可以使⽤。SpringBoot⽀持并定义了配置⽂件的格式, 也在另⼀个层⾯达到了规范其他框架集成到SpringBoot的⽬的.使⽤单引号会转义, 就是说, \n 不再表⽰换⾏了, ⽽是表⽰⼀个普通的字符串。使⽤双引号不会转义, 表⽰ \n 表⽰的是它本⾝的含义, 就是换⾏。如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤。想要解决这个问题,就可以使⽤ yml 配置⽂件的格式化了。

2024-11-19 20:11:35 702

原创 Spring IoC&DI

DI: Dependency Injection(依赖注⼊)容器在运⾏期间, 动态的为应⽤程序提供运⾏时所依赖的资源,称之为依赖注⼊。程序运⾏时需要某个资源,此时容器就为其提供这个资源.从这点来看, 依赖注⼊(DI)和控制反转(IoC)是从不同的⻆度的描述的同⼀件事情,依赖注⼊是从应⽤程序的⻆度来描述, 就是指通过引⼊ IoC 容器,利⽤依赖关系注⼊的⽅式,实现对象之间的解耦.上述代码中, 是通过构造函数的⽅式, 把依赖对象注⼊到需要使⽤的对象中的.

2024-11-19 15:05:13 1045 1

原创 Spring Web入门练习

约定好交互的⽅式. 客⼾端发起请求, 服务器提供对应的服务. 服务器提供的服务种类有很多, 客⼾端按照双⽅约定指定选择哪⼀个服务.是指应⽤程序对外提供的服务的描述, ⽤于交换信息和执⾏任务(与JavaSE阶段学习的[类和接⼝]中的接⼝是两回事).加法计算器功能, 对两个整数进⾏相加, 需要客⼾端提供参与计算的两个数, 服务端返回这两个整数计算的结果。⾸⻚: 告知前端当前登录⽤⼾. 如果当前已有⽤⼾登录, 返回登录的账号, 如果没有, 返回空。,接⼝⽂档也可以理解为是 应⽤程序的"操作说明书".

2024-11-17 17:09:30 1124

原创 Spring Web MVC

MVCSpring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为"SpringMVC".Servlet 是⼀种实现动态⻚⾯的技术. 准确来讲Servlet是⼀套 Java Web 开发的规范,或者说是⼀套。

2024-11-16 22:33:59 1312

原创 SprintBoot基础知识

jar包就是把开发⼈员已经写好的⼀些代码进⾏打包. 打好的jar包就可以引⼊到其他项⽬中, 也可以直接使⽤这些jar包中的类和属性. 另外也可以打成可执⾏jar包, 这样的包就可以通过java -jar命令来执⾏.⽐如 A 依赖B, B依赖C, 那么 A项⽬引⼊B 的同时, 也需要引⼊C, 如果我们⼿动管理这个依赖, 这个过程 就会⽐较⿇烦, 我们需要知道每个库都依赖哪些库, 以及这些依赖之间的版本是如何关联的.常⻅的Web服务器有: Apache,Nginx, IIS, Tomcat, Jboss等。

2024-11-15 23:29:44 935

原创 前端:HTML/CSS/JavaScript基础知识

CSS(Cascading Style Sheet),层叠样式表, 用于控制页面的样式.CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离.

2024-11-13 21:45:53 932

原创 Java:JVM

一个Java写的程序跑起来,就得到了一个Java进程 = JVM + 上面运行的字节码指令;进程:操作系统资源分配的基本单位;

2024-11-11 17:29:19 1051

原创 Java:HTTP/HTTPS

是一种应用应用层协议;文本=>字符串 超文本:可以传输文本,图片,语言等等其他的各种数据...1.使用浏览器打开网页;2.打开手机APP;3.后端程序,都是"分布式/微服务"体系结构;可以认为是HTTP的升级版,和HTTP的差别在于引入了一层;除了安全性之外,HTTP和HTTPS就是完全一样的;HTTP协议是一种经典的式的模型:客户端发一个请求,服务器返回一个响应;(一一对应)

2024-11-10 18:04:16 1099

原创 Java:网络原理-TCP/IP

比如开发一个外卖软件,展示"商家列表"此处就需要先确定传递的信息是啥.a.请求:用户id;用户所处的位置b.响应:商家列表,包含多个商家,包含商家的名字,距离,图片,评分...

2024-11-07 23:39:09 1195

原创 树与二叉树

(1)每个节点的度数最多为2;

2024-11-06 19:29:06 642

原创 Java:网络编程套接字(socket)

此处的连接是"抽象"的连接:通信双方如果保存了通信对端的信息,就相当于是"有连接";如果不保存对端的信息,就是"无连接";此处谈到的可靠,不是100%到达对方,而是"尽可能";网络环境非常复杂,存在很多不确定因素.内置了一些机制能保证可靠传输:(1)感知对方是不是收到了数据;(2)重传机制,在对方没收到的时候进行重试;则没有可靠性机制,完全不管发出去的数据是否能顺利到达对方;是面向字节流的,TCP的传输过程就和文件流/水流是一样的特点;

2024-11-02 00:34:51 660

原创 Java:网络初识

把几个电脑连在一起,就构成了,电脑和电脑间通过来连接.调制解调器(猫):是用来实现不同种类的信号转换,在宽带普及之前,上网是通过"电话线"进行的,猫的作用就是把电话中的模拟信号转换为网络的"数字信号".路由器上面的口比较有限:就引入了来解决口不够的问题,交换机就相当于对路由器的端口进行拓展.:通过路由器再将多个路由器连接在一起的结构.单机->局域网->广域网->移动互联网。

2024-10-31 18:54:35 699

原创 JAVA:文件IO操作

此处谈到的文件本身有多种含义.狭义的文件:特指硬盘上的文件(以及保存文件的目录).,在操作系统中,都会被视为是在一个电脑上,有很多文件都是需要依靠操作系统,进行组织管理的.这一串目录结构,就描述了文件所在的位置,构成了完整的路径中,就约定使用分隔符,分隔目录和目录:绝大部分系统使用来作为目录分隔符,只有windows既能使用"/"也能使用"\"."/"在编程的时候好处理,"\"在字符串里,必须通过转义字符"\\"来表示;

2024-10-23 13:55:48 494

原创 Java 多线程进阶:常见的锁策略/synchronized原理/CAS/JUC(java.util.concurrent)的常见类/线程安全的集合类

锁:非常广义的话题;synchronized:只是市面上五花八门的锁的其中一种典型的实现,Java内置的推荐使用的锁;

2024-10-16 23:44:32 1049

原创 多线程代码案例:单例模式/阻塞队列/线程池/定时器

单例模式是一种设计模式;类似于棋谱,有固定套路,针对一些特定场景可以给出一些比较好的解决方案;只要按照设计模式来写代码,就可以保证代码不会太差,保证了代码的下限;

2024-10-15 22:39:04 1184

原创 C/C++栈和队列

FIFO:队列是一个先进先出的数据结构;只允许从队首出元素,从队尾入元素;head和tail所包含的区间是的;

2024-10-08 21:41:43 335

原创 顺序表和链表

int* data;} vector;区分程序内部信息和内存内部信息:我们应通过程序内部信息来操控内存内部信息;int data;}Node;

2024-09-18 23:25:39 241

原创 java多线程笔记(超详细):Thread类\进程状态\线程安全\加锁\wait\notify

为什么要进行并发编程:CPU多核心通过多进程可以实现并发编程,但是进程太重量了,因此引入了多线程.线程是轻量级的进程,创建和销毁的开销更小,进程是包含线程的,同一进程的若干线程公用同一份系统资源(内存,硬盘等).

2024-09-13 16:07:48 433

原创 java多线程笔记1

核心概念:(1)进程包含线程(2)进程是系统资源分配的最小单位;线程是系统调度执行的最小单位;

2024-09-11 21:53:25 504

原创 如何实现文件拷贝(附代码)

【代码】如何实现文件拷贝(附代码)

2024-03-02 10:26:12 412

原创 XDOJ396.图灵机模拟程序

2)最后一行为一个长度不超过 100 的字符串,表示图灵机输入 该字符串由若干‘#’,两个‘*’和若干‘0’,‘1’字符构成,‘#’表示纸 带上的空白,‘*’表示输入分界符,‘0’和‘1’表示有效输入,“输入符号”和“输出符号”各是一个字符,输入和输出符号有‘*’, ‘0’,‘1’三种,其中‘*’表示分界符,两个‘*’之内的部分是有效 输入/输出。纸带其余部分填充‘#’表示空白 “纸带移动方向”也是一个字符,有三种可能:‘L’表示左移,‘R’表 示右移,‘N’表示不动。接下来是 n+1 行。

2024-01-08 15:48:10 653

原创 XDOJ380.分宝物

sA代表寻宝者A所获物品价值总和,sB代表寻。提示,n=1,宝藏价值分别为2, 3, 5, 7, 11,二者之差绝对值,最小可以为0,所以输出为0。第n个质数,第一个质数为2,第二个质数为3,第三个为5,n的数值由键盘输入,0 < n < 20。差距最小,即两人所获物品价值总和之差的绝对值|sA − sB|最小。两个寻宝者找到一个宝藏,里面包含5件物品,每件物品的价值分别是。宝者B所获物品价值总和,请问怎么分配才能使得两人所获物品价值总和。

2024-01-08 14:13:34 555

原创 XDOJ379.求解星期

英文是Monday, Tuesday, Wendnesday, Thursday,Friday, Saturday和Sunday。日期,比如2020年11月5日为2020 11 5,之间以空格隔开;输入是对应英文单词,已知2021年11月14日为星期天,输入之前的任意一个年份的时间,是星期4,为Thursday,首字母大写,其余小写。提示,星期一到星期天对应。说明:输入是三个整数,第一个表示年份,第二个表示月份,第三个表示。

2024-01-08 13:11:09 519

原创 XDOJ247.日期计算

输入包含两个整数y和d,y表示年份,年份在1900到2025之间(包含1900和2025)。给定一个年份y和一个整数d,问这一年的第d天是几月几日?在一行输出两个整数,分别表示答案的月份和日期,以空格分隔。1) 年份是4的整数倍,而且不是100的整数倍;d表示这一年的第几天,d在1至365之间。2) 年份是400的整数倍。

2024-01-08 11:45:00 696

原创 XDOJ246.单词统计

输入字符串string[N](N≤100),各个单词以空格隔开,单词长度小于等于8,输入单词word[M](M≤8),在string中查找出相同的单词并统计该单词出现的次数信息,单词不区分大小写,主函数输入字符串和待统计单词,编写函数count()实现统计和信息输出。输入一行字符以空格隔开各个单词,输入要统计的单词。输出单词和出现次数的信息,数据之间空一格空格。输出单词及其出现的次数信息,数据之间空一格。

2024-01-08 11:30:04 419

空空如也

空空如也

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

TA关注的人

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