- 博客(37)
- 收藏
- 关注
原创 Spring
★4.IOC容器构建流程?★1.Spring和和的区别?①值可变性Spring中的值是final修饰的,不可变,当试图修改这个不可变值时等于创建一个新的对象。和则是可变的②Spring:值不可改(安全)自带锁(安全)值可改,无锁(不安全)③Spring:每次修改创建新对象(效率最慢)值可改但自带锁(效率高于Spring但低于SpringBuilder)值可改,无锁(效率最快)2.
2024-06-14 21:32:16
1141
原创 JVM基础
大部分对象在Eden区中生成。回收时先将eden区存活的对象复制到一个s0区,然后清空eden区,当这个s0区,也存放满了时,则将eden区和s0区存活对象复制到另一个s1区,然后清空eden和这个s0区,此时s0区是空的,然后将s0区和s1区交换,即保持s1区为空,如此往复.开始,寻找对应的引用节点,找到这个节点以后,继续寻找这个节点的引用节点,当所有的引用节点寻找完毕之后,剩余的节点则被认为是没有被引用到的节点,即可以当作垃圾。(所有的线程共享一份).存放对象的,new的对象都存储在这个区域。
2024-06-06 20:45:15
758
原创 基础MySQL
MySqlMySql1.连接查询(以小表为基准)[先查小表,根据小表遍历大表]1.左连接(左外连接)以左表为基准进行查询,左表数据会全部显示出来,右表 如果和左表匹配 的数据则显示相应字段的数据,如果不匹配,则显示为 NULL;2.右连接right join(右外连接)以右表为基准进行查询,右表数据会全部显示出来,左表 如果和右表匹配 的数据则显示相应字段的数据,如果不匹配,则显示为 NULL;2.聚合函数聚合函数:SQL中提供的可以用来统计、计算、求最值等COUNT。
2024-06-05 21:32:15
1022
1
原创 MQ:延迟队列
该种方式可以创建一个承载不同超时时间消息的消息队列,但是这种方式有一个问题,如果消息队列中排在前面的消息没有到超时时间,即使后面的消息到了超时时间,先到超时时间的消息也不会进入死信队列,而是先检查排在最前面的消息队列是否到了超时时间,如果到了超时时间才会继续检查后面的消息。上述实现方式中,ttl延时队列中所有的消息超时时间都是一样的,如果不同消息想设置不一样的超时时间,就需要建立多个不同超时时间的消息队列,比较麻烦,且不利于维护。
2024-04-10 15:14:08
2043
原创 SpringBoot整合RabbitMQ
Bean //启动多次为什么不报错?启动的时候,它会根据这个名称Direct_Q01先去查找有没有这个队列,如果有什么都不做,如果没有创建一个新的。//1.启动的时候,它会根据这个名称Direct_E01先去查找有没有这个交换机,如果有什么都不做,如果没有创建一个新的。2. 配置RabbitMQ连接。
2024-04-09 15:07:14
1287
原创 交换机与队列的介绍
1.流程首先先介绍一个简单的一个消息推送到接收的流程,提供一个简单的图黄色的圈圈就是我们的消息推送服务,将消息推送到 中间方框里面也就是 rabbitMq的服务器,然后经过服务器里面的交换机、队列等各种关系(后面会详细讲)将数据处理入列后,最终右边的蓝色圈圈消费者获取对应监听的消息。2. 交换机类型(面试题)常用的交换机有以下三种,因为消费者是从队列获取信息的,队列是绑定交换机的,所以对应的消息推送/接收模式也会有以下几种:直连型交换机,根据消息携带的路由键将消息投递给对应队列。
2024-04-09 15:05:28
962
原创 MQ 死信队列
/.ttl(10*1000) //该属性是队列的属性,设置消息的过期时间,消息在队列里面停留时间n毫秒后,就会把这个消息投递到死信交换机,针对的是所有的消息。//.maxLength(20) //设置队列存放消息的最大个数,x-max-length属性值,当队列里面消息超过20,会把队列之前的消息依次放进死信队列。// // 处理失败,可以选择重试或拒绝消息(basicNack或basicReject) NO。// // 处理消息…
2024-04-09 15:04:46
592
原创 Redis面试题
应该使用scan 命令来进行模糊查找,在百万keys进行模糊查找,使用keys是不可取的,因为它可能会阻塞 redis线程,而每次调用scan 命令都会返回一个新的游标和一批键名,可以分批查找 ,这样就不会造成线程的阻塞,提高了查询效率。1、在发现缓存没有数据后,在执行查询数据库前,对该Key进行加锁,查询数据库并放入缓存后再解锁,这样可以避免缓存击穿问题,当某个redis数据不存在时,大量线程并发查询数据库。之后其他线程再查询缓存,发现没数据,再次查询数据库及放入缓存都是新数据。保证缓存和数据一致性。
2024-03-29 17:53:15
576
原创 Redis常用命令
常用命令面试题:(掌握)在百万keys的Redis里面,如何模糊查找某个key?应该使用scan 命令来进行模糊查找,在百万keys进行模糊查找,使用keys是不可取的,因为它可能会阻塞 redis线程,而每次调用scan 命令都会返回一个新的游标和一批键名,可以分批查找 ,这样就不会造成线程的阻塞,提高了查询效率。1.StringSET“OK”get key01“value01”#设置value,同时设置key过期时间,单位秒“OK”TTL key02SETEX。
2024-03-29 08:50:01
731
原创 面试题nginx
我们还使用了 proxy_set_header 指令设置了一些请求头信息,如 X-Real-IP 、 Host 和 X-Forwarded-For ,以便后端服务器能够正确处理请求和获取客户端的真实IP地址。它可以根据不同的策略(如轮询、IP哈希、最少连接数等)将请求分发到不同的服务器上,以达到优化资源利用和提高系统性能的目的。这样,当客户端发送请求到 example.com/api/ 时,Nginx会将请求转发到后端服务器上的API服务,并实现负载均衡。这样可以实现负载均衡,提高系统的可靠性和性能。
2024-03-28 11:30:08
809
原创 Vue前端项目打包
3. try_files:设置文件查找规则为 $uri $uri/ /index.html。即3个规则,先从 $uri 查找,再从 u r i / 目录中查找,最后查找 / i n d e x . h t m l。2. index:设置目录的默认文件为 index.html 、index.htm、index.php。4.2 前端项目 nginx的配置文件default.conf 和 dockerfile。1.root:设置静态根目录为 /usr/share/nginx/html。
2024-03-28 11:29:02
249
原创 Java项目基于Docker打包发布
docker tag [ImageId] registry.cn-beijing.aliyuncs.com/beiyou123/beimao:[镜像版本号]$ docker push registry.cn-beijing.aliyuncs.com/beiyou123/beimao:[镜像版本号]docker pull registry.cn-hangzhou.aliyuncs.com/206/beimao:[镜像版本号]2.新建dockerfile。#查看是否已经copy进去。#配置容器暴漏的端口。
2024-03-28 11:27:25
601
原创 Redis慢日志
6)客户端名称 (仅 4.0 以上版本支持,默认名称为空,需要通过 client setname 命令进行设置)SLOWLOG 是用来读取和重置 Redis 慢查询日志的命令,Redis 2.2.12 版本开始支持。Redis 慢查询日志统计的时间,只包含第三步的 Redis 命令从开始执行到执行完成的时间。可以使用 SLOWLOG GET N 命令来读取慢日志,查询最近的 N 条记录。Redis 慢查询日志的时间阈值,单位微妙。慢查询日志是记录在内存中的,记录速度非常快。2.慢查询日志的两个配置项。
2024-03-28 11:25:47
479
原创 SpringBoot使用Redis
1.Redis面试题-缓存穿透,缓存击穿,缓存雪崩1 穿透: 两边都不存在(皇帝的新装) (黑名单) (布隆过滤器)2 击穿:一个热点的key失效了,这时大量的并发请求直接到达数据库. (提前预热)3 雪崩:大量key同时失效 (避免大量的key同一时间失效,错峰)2.Spring是如何集成Redis的?
2024-03-28 11:25:08
572
原创 Redis基础
6.Redis 结构体特质 特征String字符串、Number、图片二进制安全,最大512MBBitMapbitHashList队列 左 < – > 右Set无序集合,唯一zSET有序集合,唯一。
2024-03-27 08:57:21
797
原创 Docker常用命令
Docker常用命令1.docker 基础命令启动docker关闭docker重启dockerdocker设置随服务启动而自启动查看docker 运行状态查看docker 版本号信息docker 帮助命令忘记了某些命令便可使用此进行查看与回顾比如 忘记了 拉取命令 不知道可以带哪些参数 咱可以这样使用2.镜像命令查看镜像列表搜索镜像docker search 镜像名搜索 STARS >9000的 mysql 镜像拉取镜像。
2024-03-21 09:01:43
1714
1
原创 Linux网络工具netstat & telnet的使用
表示收到的数据已经在本地接收缓冲,但是还有部分没有被进程取走,recv()如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service 攻击;表示收到的数据已经在本地接收缓冲,但是还有部分没有被进程取走,recv()如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service 攻击;netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。可接受短暂的非0情况。
2024-03-20 09:03:58
1681
1
原创 Linux防火墙和常用命令
防火墙一、防火墙的开启、关闭、禁用命令(1)设置开机启用防火墙:systemctl enable firewalld(2)设置开机禁用防火墙:systemctl disable firewalld(3)启动防火墙:systemctl start firewalld(4)关闭防火墙:systemctl stop firewalld 或 systemctl stop firewalld.service(5)检查防火墙状态 systemctl status firewalld。
2024-03-20 09:02:34
16261
1
原创 Linux密令
一.yum安装软件:1.安装yum包:yum install package_name2.yum包装:yum remove package_name3.搜索yum包: yum search package_name二.防火墙密令:1.设置开启防火墙:systemctl start firewalld2.设置关闭防火墙:systemctl stop firewalld 或 systemctl stop firewalld.service。
2024-03-20 09:00:51
549
1
原创 [Spring] IOC
IOC (Inverse of Control)即控制反转:由ioc容器来创建依赖对象,程序只需要从IOC容器获取创建好的对象。原来: 我们在获取对象时,都是采用new的方式。是主动的。现在: 我们获取对象时,同时跟工厂要,有工厂为我们查找或者创建对象。是被动的。 这种被动接收的方式获取对象的思想就是控制反转,它是spring框架的核心之一。在Spring中,bean作用域用于确定bean实例应该从哪种类型的Spring容器中返回给调用者。
2024-01-04 20:05:38
791
1
原创 [Spring]基于注解的IOC配置
学习基于注解的IOC配置,大家脑海里首先得有一个认知,即注解配置和xml配置要实现的功能都是一样的,都是要降低程序间的耦合。只是配置的形式不一样。
2024-01-04 19:53:37
836
1
原创 MyBatis缓存
为什么使用缓存?首次访问时,查询数据库,并将数据存储到内存中;再次访问时直接访问缓存,减少IO、硬盘读写次数、提高效率Mybatis中的一级缓存和二级缓存?①一级缓存:它指的是mybatis中的SqlSession对象的缓存。当我们执行完查询之后,查询的结果会同时存在在SqlSession为我们提供的一块区域中。当我们再次查询同样的数据,mybatis会先去SqlSession中查询是否有,有的话直接拿出来使用。当SqlSession对象消失时,Mybatis的一级缓存也就消失了。
2023-12-25 19:37:50
46
原创 MyBatis的增删改查(CRUD)
含蓄的小简介😋:还在愁 MyBatis 增删改查不会用?度大糊课堂开课了,一篇文章打通你增删改查的“任督二脉”!增(含2种主键回填方法)
2023-12-19 21:59:23
65
1
原创 Switch和for循环语句的应用
Switch语句支持int类型,byte类型,short类型,int类型,enum类型,String类型。Switch表达式必须有default,如有多行语句用yield返回并赋值。default(当switch的key值与所有case的值都不匹配时,默认执行default)yield(返回赋值 [如果有多行语句,可以使用yield返回并赋值])实例:1+2+3...+100和11~1循环代码。break(停止循环)switch(开关)
2023-10-13 19:42:33
205
原创 日历(java.util.Calendar类)
等日历 字段之间的转换提供了一些方法,并为操作日历字段(如获得下星期的日期) 提供了一些方法。Calendar 类中定义了许多常量,分别表示不同的意义。类是一个抽象类,但是它提供了一个 getInstance() 方法来获得。Calendar 类是一个抽象类,它为特定瞬间与。Calendar 对象可以调用。取负数时表示公元前。Calendar 对象调用。对象,其日历字段已由当前日期和时间初始化。方法可以获取有关年、月、日等时间信息,参数。创建 Calendar。方法将日历翻到任何一个时间,当参数。
2023-10-11 21:17:27
146
原创 比较运算符(关系运算符)
1. 基本类型的变量、值不能和引用类型的变量、值使用 == 进行比较;boolean 类型的变量、值不能与其他任意类型的变量、值使用 == 进行比较;当用于引用类型比较时,比较的是两个引用是否指向同一个对象,但当时实际开发过程多数情况下,只是比较对象的内容是否相当,不需要。由于计算机内存放的实数与实际的实数存在着一定的误差,如果对浮点数进行 ==(相等)或!关系运算符的优先级为:>、<、>=、<= 具有相同的优先级,并且高于具有相同优先级的!系,那么它们的变量也不能使用 == 进行比较。
2023-10-10 19:22:05
302
1
原创 Git 分布式版本控制系统的安装和配置
下载https://github.com/git-for-windows/git/releases/download/v2.42.0.windows.2/PortableGit-2.42.0.2-64-bit.7z.exe。最终我们使用的是 D:\11\Git\bin\git.exe。在Path环境变量上,新增 d:\11\Git\bin。进入命令控制台 cmd 查看git版本号。将Git软件解压到D:\Git目录下。git-scm.com 官网。
2023-10-10 09:09:13
109
1
原创 Java程序注释
文件注释,类注释,属性注释,方法的注释这些注释和类的结构属性和一个javadoc.exe命令相关,javadoc命令可以根据文字的这些信息,快速生成类的api参考网页。//ctrl + shift + / 块注释,多行注释。用于对单行内容进行注释。2.多行注释(块注释)
2023-10-08 20:51:54
74
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人