- 博客(50)
- 收藏
- 关注
原创 【算法题】最长回文子串
所以这道题就是通过在她的子串是回文的前提下来判断前后各加一个字符后是否回文,因此我们可以用动态规划来写,定义一个boolean类型的二维dp数组来判断该子串是否回文,如果是则为true,否则为false。然后在得到新的回文子串后就对长度进行更新。首先我们要清楚回文串的特性,就是对称的,那么可以这样想,如果一个字符串如果他是回文的,那么分别在她前后各加一个相等字符,那么加了后的新的字符串是不是也是回文的。所以这道题在判断是否回文时是在前一个串是回文的前提下的。
2025-06-04 21:55:08
162
原创 【MYSQL】索引篇(一)
索引的本质是一种数据结构,她的作用其实就是更好更快的帮我们找到数据库中存储的数据,就好比一本书,你想要找到指定的内容,但是如果在没有目录的情况下,你只能一页页的进行寻找,这样效率太低了。索引就相当于目录,能够迅速定位到你想要查找的内容。
2025-05-31 22:15:55
362
原创 【分布式文件系统】FastDFS
讲这个之前,相信很多人特别是学java的,肯定在做苍穹外卖的时候肯定接触过一个东西,叫做阿里云OSS,他们的功能都差不多,但是阿里云的这个是要付费的,而FastDFS是免费开源的,是由淘宝资深架构师余庆开发,专为高并发,大文件存储场景设计,尤其适用于海量小文件存储(如图片,视频,日志等)。它具有轻量级,高可扩展,高可用等特点,广泛适用于电商,社交,音视频等领域。
2025-05-23 22:37:52
959
原创 java泛型
泛型是java5引入的一种特性,他能让类,接口以及方法在定义时使用类型参数。使用他可以限制我们传入的数,同时可以减少强制类型转换的使用,具体的使用就不说了,应该很简单,因为他用的频率太高了。
2025-05-16 12:04:35
335
原创 关于maven的依赖下不下来的问题
不过言归正传,具体怎么解决呢,其实这个依赖应该是在<dependencyManagement>这个标签下的,他只是父类工程下的用来管理依赖版本的,他不会自动下载对应的依赖,只有dependencies标签下的才会。其实就算报错了也是不影响项目运行的,如果你实在看不惯他,可以再重新开一个项目,把你报错的依赖下下来,这时再回去看原来那个项目,依赖就不会报错了,因为他已经被下到了本地仓库中。相信大家对于maven下不下依赖会感到很烦,这里就来给大家进行解惑。hh,这个人正是在下,一个学java的废物。
2025-05-13 22:01:42
557
1
原创 小数的二进制表示
从上往下读0.625取二进制就是0.101,如果小数前面有整数就可以把他转成二进制在组合,例如8.625,整数为100,小数为101,组合就是100.101,当然并不是每个小数都能够乘尽,比如0.1就不行,具体保留的位数就看你用什么了,比如你用的是double还是float。小数就是不断的乘2然后取他的整数,直到他的小数部位为0,来张图可能会更好理解。相信很多人都知道整数的二进制表示方法,但是小数的二进制就不一定了。而且每个整数都有他对应的二进制数,但是小数转二进制是不是呢,往下看。
2025-05-07 23:36:08
488
原创 springboot单体项目的执行流程
处理器方法处理完业务逻辑后,返回一个结果。1.将原始的HTTP请求封装成HttpServletRequest对象,该对象提供了一系列方法用于获取请求的各种信息,如请求方法,请求URL,请求头,请求体等。1.请求方法:常见的有GET(用于获取资源),POST(用于提交数据),PUT(用于更新资源),DELETE(用于更新资源),DELETE(用于删除资源)等。3.请求头:携带关于请求的额外信息,包含很多信息,如客户端类型,请求体的数据格式,请求发送的日期时间,身份验证(例如把token放到请求头中)等等。
2025-05-05 20:31:06
1163
3
原创 包装类的缓存机制
因为该机制,有时候两个相同数值的包装类的对象也有可能是相等的,不能惯性的认为类的不同对象不可能相等,我之前写力扣就是踩的这个坑,怎么找等没从这个上面去考虑。缓存机制就是让各个包装类在一定大小范围内,不直接创建新的对象,而是直接从缓存中缓存中获取对象,而这里的缓存中的对象是JVM在类加载的时候就已经创建好了。该机制的引入是为了提升性能并减少内存的使用,因为包装类相对基本类型来说,多了垃圾回收,内存分配等,性能相对较低。最后缓存的范围到底是多少呢,下面吧常见的列举一下。
2025-04-29 14:05:02
262
原创 JWT令牌
JWT全称是JSON Web Token,它是一种用于在网络应用间安全传输信息的开放标准。在Java里,它是一种十分常用的身份验证机制和授权机制,能在客户端和服务端之间安全的传递声明。
2025-04-23 13:14:54
563
1
原创 【RocketMQ】关于RocketMQ配置好了jdk环境变量却一直报需要配置环境变量的问题
正如上图所示,我明明已经配置好了环境变量,也显示配置好了,jdk与我的rocketmq的版本也是适配的,可每次启动namesrv和broker却一直显示要去配置环境变量,其实很简单,配置环境变量时特殊符号会影响路径查找,所以不妨把它的名称改成java8,然后再环境变量也相应的改动一下即可。最后,这是我花了一个上午才解决的问题,在此也记录一下,希望能够帮到你。
2025-04-14 12:56:48
330
原创 【RabbitMQ】延迟队列
延迟队列其实就是队列里的消息是希望在指定时间到了以后或之前取出和处理,简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列。延时队列的使用场景:1.订单在十分钟之内未支付则自动取消2.新创建的店铺,如果在十天内都没有上传过商品,则自动发送消息提醒。3.用户注册成功后,如果三天内没有登陆则进行短信提醒。4.用户发起退款,如果三天内没有得到处理则通知相关运营人员。5.预定会议后,需要在预定的时间点前十分钟通知各个与会人员参加会议。
2025-04-10 00:01:44
708
原创 【RabbitMQ】死信队列
死信,顾名思义就是无法被消费的消息,也就是没有被传到消费者的消息,或者即使传到了也没有被消费。当然有死信就有死信队列。死信队列就是用来存储死信的。它的应用场景就是保证订单业务的消息数据不丢失,当消息消费发 生异常时,将消息投入死信队列中。还有比如说:用户在商城下单成功并点击去支付后在指定时间未支付 时自动失效。死信的来源有3种:1.消息TTL过期(TTL就是过期时间)2.队列达到最大长度(也就是队列装满了消息)
2025-04-09 16:23:16
1226
原创 【RabbitMQ】队列模型
RabbitMQ作为消息队列,有6种队列模型,分别在不同的场景进行使用,分别是Hello World,Work queues,Publish/Subscribe,Routing,Topics,RPC。下面就分别对几个模型进行讲述。
2025-04-08 21:10:07
1725
原创 【Spring Cloud Netflix】GateWay服务网关
GateWay用于在微服务架构中提供统一的入口点,对请求进行路由,过滤和处理。它就像是整个微服务系统的大门,所有外部请求都要通过它才能访问到后端的各个微服务。
2025-04-06 23:16:39
1253
原创 【spring cloud Netflix】Hystrix组件
Hystrix是由Netflix开源的一个延迟和容错库,旨在隔离对远程系统,服务或第三方库的调用,防止级联故障,提高系统的弹性和容错能力。
2025-04-06 16:32:20
895
原创 【spring Cloud Netflix】OpenFeign组件
Feign旨在使编写Java Http客户端变得更容易。前面在使用Ribbon+RestTemplate进行服务的远程调用 时,利用RestTemplate对Http请求的封装处理,形成了一套模板化的调用方法。但是在实际开发中,由 于对服务的依赖调用可不止一处,往往一个服务接口可能会被多次调用,所以通常会针对每一个微服务自 行封装一些客户端来包装这些依赖服务的调用。所以feign在此基础上做了进一步的封装,由它来帮助我们 定义和实现依赖服务接口的定义。
2025-04-05 18:43:57
460
原创 【spring cloud Netflix】Ribbon组件
SpringCloud Ribbon是基于Netflix Ribbon 实现的一套客户端负载均衡的工具。简单的说,Ribbon 是 Netflix 发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将 Netflix 的中间层服务连接在一 起。Ribbon 的客户端组件提供一系列完整的配置项,如:连接超时、重试等。简单的说,就是在配置文 件中列出 LoadBalancer (简称LB:负载均衡) ,Ribbon 会自动的帮助你基于某种规则 (如简单轮询,随机 连接等等) 去连接这些机器。
2025-04-05 14:01:57
680
原创 【spring cloud Netflix】Eureka注册中心
就好比是滴滴,负责管理、记录的信息。无需自己寻找服务,而是把自己的 需求告诉,然后会把符合你需求的服务告诉你。同时,与之间通过“心跳” 机制进行监控,当某个出现问题,自然会把它从服务列表中剔除。这就实现了服务的自动注册、发现、状态监控。Eureka:就是服务注册中心(可以是一个集群),对外暴露自己的地址服务提供者:启动后向Eureka注册自己信息(地址,提供什么服务)服务消费者:向Eureka订阅服务,Eureka会将对应服务的所有提供者地址列表发送给消费者,并且定 期更新。
2025-04-04 19:34:34
1143
1
原创 【微服务】基础概念
微服务其实就是一种架构风格,他提倡我们在开发的时候,一个应用应该是一组小型服务而组成的,每一个服务都运行在自己的进程中,每一个小服务都通过HTTP的方式进行互通。他更加强调服务的彻底拆分。他并不是仅局限于用java来实现,可以由不同的编程用语言进行实现,当然也可以用不同的数据库。它的优点显而易见,1.服务原子化拆分,独立打包,部署和升级,保证每个微服务清晰的任务划分,利于扩展。2.微服务之间采用Restful架构风格规范接口设计,基于HTTP协议进行相互调用,发挥HTTP协议在网络传输中的轻量优势。
2025-04-04 16:43:22
1067
原创 【操作系统】进程调度
进程调度主要负责合理分配 CPU 资源,决定哪些进程(任务)可以使用 CPU,以及何时使用。它的目标是在多个进程之间高效切换,提升系统性能和用户体验。至于如何高效的提升性能,就要通过具体的调度策略来进行运作了。但是在讲不同的调度策略之前,先要有对这个策略好坏的评判指标。
2025-03-28 23:17:45
1048
原创 【Mybatis】Mybatis参数深入
parameterType标签是用来设定sql语句中参数的数据类型。它可以设定的数据类型可以是基本数据类型,引用数据类型(如String类型),自定义数据类型。但是要注意的是,基本数据类型和String可以直接写类型名称,也可以使用包名。这是直接写类型名称这是写包的名称的方式至于为什么既能用包名用能用类型名称,可以看一下源码。
2025-03-18 22:53:30
1291
1
原创 【Mybatis】入门
这是我要操作的表 ,所以下面的变量根据里面来设,toString()是为了方便后面测试看结果/*** pojo与数据表user形成映射关系* 定义的规则* 1.实体类的字段和数据表中字段的名称保持一致* 2.实体类的字段的数据类型必须和数据表中字段的数据类型保持一致*/return id;return sex;
2025-03-18 10:41:47
548
1
原创 【SpringMVC】常用注解:@MatrixVariable
接收矩阵变量传送的值或许有人听都没听过矩阵变量是什么,下面来介绍一下矩阵变量是一种在URL路径中传递多个键值对参数的方式,它是在 Servlet 规范之外的一种扩展机制,可用于更灵活地传递参数。,其中color=red和year=2020就是矩阵变量。
2025-03-15 20:42:20
332
原创 【SpringMVC】常用注解:@PathVariable
用于绑定url中的占位符,例如请求中的/delete/{id},这个{id}就是 url中的占位符。url支持占位符是Spring3.0之后加入的。是SpringMVC支持 rest风格URL的重要标志。
2025-03-15 20:18:54
356
原创 【SpringMVC】常用注解:@ModelAttribute
该注解是在SpringMVC4.3版本后新加入的。它可以修饰方法和参数。出现在方法上,表示当前方法会在控制器的方法之前执行。它可以修饰 没有返回值的方法,也可以修饰没有返回值的方法。它修饰参数,获取指定 的数据给参数赋值。当表单提交的不是完整的实体类型数据时,保证没有提交数据的 字段使用数据库对象原来的数据。例如:我们在编辑一个用户时,用户有一个创建信息的字段,该字段的值是不 允许被修改的。在提交表单数据是肯定没有此字段的内容,一旦更新会把该字段 的内容设置为null。此时就可以使用此注解解决问题。
2025-03-15 20:05:12
606
原创 【SpringMVC】常用注解:@RequestBody
用于获取请求实体内容,直接使用得到的是key=value&key=value的数据。获取请求实体内容不适用get请求。
2025-03-14 23:00:19
426
原创 【SpringMVC】常用注解:@RequestParam
如果控制器标注的方法的参数名称与前端传递过来的参数名称不一致,使得SpringMVC无法自动启动,那么我们可以使用该注解实现前后端参数的绑定。
2025-03-14 21:22:16
507
原创 【SpringMVC】入门版
SpringMVC是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级web框架, 属于Spring FrameWork的后续产品,已经融合在Spring Web Flow里面。Spring框 架提供了构建web应用程序的全功能MVC模块。使用Spring可插入的MVC架构,从而在使用 Spring进行web开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框 架,比如Struts2等。
2025-03-14 19:46:39
887
原创 【spring】springAOP
AOP即面向切面编程,它利用的是一种横切技术,解剖开封装的对象内部,并将那些影响多个类的公共行为封装到一个可重 用模块,这就是所谓的Aspect方面/切面。所谓的切面,简单点所说,就是将哪些与业务无关,却为业务 模块所共同调用的行为(方法)提取封装,减少系统的重复代码,以达到逻辑处理过程中各部分之间低 耦合的隔离效果。SpringAop底层利用的是动态代理技术,但是动态代理过于繁琐,于是Spring引入了第三方的Aspectj框架。
2025-03-12 20:28:50
1228
原创 【spring】配置类和整合Junit
在spring中,虽然可以用@Component把我们想要放入的bean所属的类放入ioc容器中,但是这个类局限于自己自定义的类,但是如果时其他已经被封装好的实现的类,我们就不能这么干了,就只能老老实实用xml文件来。其实还是有其他方法的,它就是java的配置类。那至于什么是配置类呢,它的作用其实和xml文件的作用是差不多的,都是用来管理bean的。首先来介绍它的作用就是用来指定当前的类是一个配置类。其实讲到这就够了,至于怎么获取bean后面再来讲。接着我们来讲一下。
2025-03-09 16:46:28
1334
原创 【spring】注解版
之前我们要想管理bean都是在xml文件中将想要添加的bean手动添加进ioc容器中,这样太过麻烦了,在 Java 开发里,针对一些较为繁琐的操作,通常会有相应的简化方式,这个也不例外,就是spring提供的注解。只需要把它写在想要放入ioc容器的bean所属的类上即可,在后面可以加上(value="")这个value的值就是相当于之前xml文件中bean标签里的id,可以直接把value去掉直接写上对应的值,毕竟就这一个值也不需要区分。
2025-03-07 18:32:25
873
原创 【spring】原生xml配置版
我们平常写项目时通常都要考虑项目的耦合性,特别时当后期想要增删功能时,最好不要去改动源代码,为了解决这个,一般用工厂模式加上反射模式来解耦合,虽然它解决了这个问题,但也带来了另外一个问题,就是每次都需要重复的去创建类的实例化对象,这样就加大了资源的开销,那么这个时候spring就应运而生了,它通过将需要实例化的类放进springioc容器中,当需要使用这个类中的方法时,就可以调用容器中相关类的bean(通常就可以理解为类的实例化对象)。
2025-03-07 11:03:26
1227
原创 【计算机网络】TCP
一旦含该SYN报文段的IP数据报到达服务器主机(前提是的确到达了,不然就没后面什么事了),服务器就会从该数据报中提取出SYN报文段,为该TCP连接分配TCP缓存和变量,并向客户端发送允许连接的报文段,其中SYN被置为1,这个的意思应该指的就是继续同步请求了,server_isn是服务端初始序列号,ack指的是确认序列号,表示接收方期望收到对方下一个报文段的第一个数据字节的序号,即对已接收数据的确认 ,所以客户端下一次发送的报文段的序号就是client_isn+1.
2025-03-04 22:15:04
1469
1
原创 【java】多线程
并发指的是多个任务在同一时间段内被执行。在单核处理器中,多个任务通过快速交替执行来实现并发效果;而在多核处理器中,多个任务有可能在同一时刻被并行执行,并行其实是并发的一种特殊情况。这里的 “时间段” 并没有严格的时长限制,只要多个任务处于交替或同时执行的状态,都可称为并发。
2025-02-28 00:06:16
1146
原创 【计算机网络】HTTP
HTTP全称叫做超文本传输协议,它是web的核心,或许此时有人有疑惑,什么叫做web,web通常是指万维网,它是一种基于超文本和 HTTP 协议的信息系统,是互联网的重要组成部分,不能把它理解为网站,网站依赖web技术运行,众多的网站共同构成了 Web 这个庞大的信息系统,Web 就像一个巨大的舞台,而网站则是在这个舞台上表演的一个个角色,它们各自发挥着不同的作用,共同为用户提供各种各样的信息和服务。HTTP基于客户端 - 服务器模型,工作在 TCP/IP 协议栈之上。
2025-02-27 00:07:04
1544
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人