学习路漫长
码龄1年
关注
提问 私信
  • 博客:32,199
    32,199
    总访问量
  • 49
    原创
  • 31,390
    排名
  • 391
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:山西省
  • 加入CSDN时间: 2023-08-01
博客简介:

2301_79288225的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    471
    当月
    22
个人成就
  • 获得648次点赞
  • 内容获得13次评论
  • 获得514次收藏
创作历程
  • 47篇
    2024年
  • 2篇
    2023年
成就勋章
兴趣领域 设置
  • Java
    javaspringjava-eespring bootjvm
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

RabbitMQ概念及其使用方法(入门)

前⾔Rabbit, 兔⼦的意思 互联⽹⾏业很多公司, 都喜欢⽤动物命名产品, 或者作为公司的logo, 吉祥物. ⽐如: 腾讯的企鹅, 京东的狗, 美团的袋⿏, 携程的海豚,阿⾥就更多了, 蚂蚁, ⻜猪,天猫,菜⻦, 闲⻥, 盒⻢.... 更是以⼀⼰之⼒, 组建了⼀个动物园...Rabbit也是⼀个公司名.MQ) 消息队列 的意思 ,RabbitMQ是Rabbit企业下的⼀个消息队列产品.RabbitMQ是⼀个实现了AMQP的 消息队列 服务,是当前主流的消息中间件之⼀.
原创
发布博客 2024.11.09 ·
909 阅读 ·
17 点赞 ·
0 评论 ·
10 收藏

Redis 的使⽤和原理

第一章:初识 Redis1.1盛赞 RedisRedis是⼀种基于键值对(key-value)的 NoSQL 数据库,与很多键值对数据库不同的是,Redis中的值可以是由 string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、 Bitmaps(位图)、HyperLogLog、GEO(地理信息定位)等多种数据结构和算法组成,因此 Redis可以满⾜很多的应⽤场景,⽽且因为 Redis 会将所有数据都存放再内存中,所以它的读写性能⾮常惊⼈。
原创
发布博客 2024.11.03 ·
1179 阅读 ·
8 点赞 ·
0 评论 ·
23 收藏

Spring事务和事务传播机制

事务不会读到其他事务对已有数据的修改, 即使其他事务已提交. 也就可以确保同⼀事务多次查询的结果⼀致, 但是其他事务新插⼊的数据, 是可以感知到的. 这也就引发了幻读问题. 可重复读, 是 MySQL 的默认事务隔离级别.p1事务可以认为是⽗事务, 嵌套事务是⼦事务. ⽗事务出现异常, ⼦事务也会回滚, ⼦事务出现异常, 如果不进⾏处理, 也会导致⽗事务回滚.A⽅法运⾏时, 会开启⼀个事务. 当A调⽤B时, B⽅法本⾝也有事务, 此时B⽅法运⾏时, 是加⼊A的事务, 还是创建⼀个新的事务呢?
原创
发布博客 2024.09.13 ·
709 阅读 ·
22 点赞 ·
0 评论 ·
11 收藏

Spring AOP

什么是⾯向特定⽅法编程呢?⽐如上个章节学习的"登录校验", 就是⼀类特定问题. 登录校验拦截器, 就是对"登录校验"这类问题的统⼀处理. 所以, 拦截器也是AOP的⼀种应⽤. AOP是⼀种思想, 拦截器是AOP思想的⼀种实现. Spring框架实现了这种思想, 提供了拦截器技术的相关接⼝.当我们在⼀个项⽬中, 定义了多个切⾯类时, 并且这些切⾯类的多个切⼊点都匹配到了同⼀个⽬标⽅法. 当⽬标⽅法运⾏的时候, 这些切⾯类中的通知⽅法都会执⾏, 那么这⼏个通知⽅法的执⾏顺序是什么样的呢?
原创
发布博客 2024.09.11 ·
1694 阅读 ·
44 点赞 ·
0 评论 ·
39 收藏

SpringBoot 统⼀功能处理

slf4j相当于接口A,log4j相当于是接口B,由于AB不适配,所以需要一个适配器来进行转换,Slf4jLog4jAdapter这个接口就是用来进行转换的,这个类实现slf4j这个接口,然后重写一下该接口的log方法,然后在这个适配器类里定义一个变量是log4j这个对象,通过构造方法给该对象进行实例化,在重写的log方法中,调用log4j中的打印方法,在main方法中,通过实现slf4jApi这个接口,调用这个对象即可完成适配器模式。拦截器的⼊⻔程序完成之后,接下来我们来介绍拦截器的使⽤细节。
原创
发布博客 2024.09.10 ·
1837 阅读 ·
36 点赞 ·
0 评论 ·
31 收藏

MyBatis基本操作及使用

什么是MyBatis?•MyBatis是⼀款优秀的 持久层 框架,⽤于简化JDBC的开发。•MyBatis本是 Apache的⼀个开源项⽬iBatis,2010年这个项⽬由apache迁移到了google code,并且改名为MyBatis。2013年11⽉迁移到Github.在上⾯我们提到⼀个词:持久层•持久层:指的就是持久化操作的层, 通常指数据访问层(dao), 是⽤来操作数据库的.简单来说 MyBatis 是更简单完成程序和数据库交互的框架,也就是更简单的操作和读取数据库⼯具。
原创
发布博客 2024.09.03 ·
1114 阅读 ·
10 点赞 ·
0 评论 ·
7 收藏

SpringBoot 配置⽂件

⽀持更多的编程语⾔, 不⽌是Java中可以使⽤, 在Golang, Python, Ruby, JavaScript中也可以使⽤。SpringBoot⽀持并定义了配置⽂件的格式, 也在另⼀个层⾯达到了规范其他框架集成到SpringBoot的⽬的.properties 配置⽂件是最早期的配置⽂件格式,也是创建 SpringBoot 项⽬默认的配置⽂件。使⽤双引号不会转义, 表⽰
表⽰的是它本⾝的含义, 就是换⾏。如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤。
原创
发布博客 2024.08.28 ·
792 阅读 ·
18 点赞 ·
0 评论 ·
5 收藏

Spring IoC&DI

我们发现了⼀个规律,通⽤程序的实现代码,类的创建顺序是反的,传统代码是 Car 控制并创建了Framework,Framework 创建并创建了 Bottom,依次往下,⽽改进之后的控制权发⽣的反转,不再是使⽤⽅对象创建并控制依赖对象了,⽽是把依赖对象注⼊将当前对象中,依赖对象的控制权不再由当前类控制了.在上⾯的程序中, 我们是根据轮⼦的尺⼨设计的底盘,轮⼦的尺⼨⼀改,底盘的设计就得修改. 同样因为我们是根据底盘设计的⻋⾝,那么⻋⾝也得改,同理汽⻋设计也得改, 也就是整个设计⼏乎都得改。
原创
发布博客 2024.08.26 ·
381 阅读 ·
5 点赞 ·
0 评论 ·
3 收藏

Spring MVC详解

Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为"SpringMVC".MVC是软件架构的设计模式,与单例模式和工厂模式不同⽐如去公司⾯试我们到了公司之后, HR会给我们安排会议室, 根据候选⼈去通知不同的部⻔来安排⾯试, ⾯试结束后, 由HR来告诉⾯试结果在这个过程中。
原创
发布博客 2024.08.18 ·
980 阅读 ·
18 点赞 ·
0 评论 ·
7 收藏

位运算算法知识以及相关OJ练习题

这个题就是判断一个数二进制中1的个数,我们让这个数的每一个比特位&1即可判断这个比特位是不是为1,假如判断5比特位中1的个数,101,判断每一比特位是否为1就要将该位置右移x为然后&1即可得到,>>右移一位,<<左移一位,~按位取反,&有0就为0,|有1就为1 ^相同为0不同为1/无进位相加。-n就是n取反在加1。
原创
发布博客 2024.08.09 ·
256 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

JVM的面试考点

3.工作就到了BootStrapClassLoader,这个类加载器,也不会立即从标准库中开始搜索,而是继续交给自己的父亲,由于自己的父亲为null,只能自己来处理,BootStrapClassLoader尝试在标准库的路径上开始搜索,如果这个类找到了,搜索过程完成,然后打开文件进行后续操作,如果没找到则交给自己的儿子来进行处理,上述四个区域中,堆和元数据区,是整个进程只有一份,栈和程序计数器是每个线程都有,多个线程同享一份数据,每个线程的局部变量,不是共享的,每个线程有自己的一份。
原创
发布博客 2024.08.06 ·
897 阅读 ·
22 点赞 ·
0 评论 ·
10 收藏

HTTPS

2)针对证书的数字签名进行解密,由于数字签名是基于公证机构的私钥来进行加密的,所以解密需要公正机构的公钥,这个公钥是操作系统内置公正机构的公钥,用这个公钥来进行解密得到的校验和2。由于对称加密的效率⽐⾮对称加密⾼很多, 因此使用⾮对称加密是对对称加密的密钥进行加密, 传输业务逻辑仍然使⽤对称加密.:密钥是一对(分别是公钥和私钥),加密解密速度比较慢,安全性更高,如果是公钥加密,私钥解密,私钥加密公钥解密,RSA。⽐较理想的做法, 就是能在客⼾端和服务器建⽴连接的时候, 双⽅协商确定这次的密钥是啥~
原创
发布博客 2024.08.05 ·
827 阅读 ·
13 点赞 ·
0 评论 ·
14 收藏

HTTP协议

版本的使用还与软件库的配套有关http是典型的"一问一答"这种模式的协议,请求和响应是一一对应的一问一答,多问一答(上传大文件的时候),一问多答(下载大文件的时候),多问多答(远程桌面/游戏串流)UDP/TCP完全支持上述四种问答模式。
原创
发布博客 2024.08.04 ·
935 阅读 ·
16 点赞 ·
0 评论 ·
10 收藏

网络原理的TCP/IP

TCP通信时使用的序号,就是协商出来的,序号往往不是从0/1开始的,而是三次握手的时候协商出来一个数字,第一次连接和第二次连接的协商出来的起始序号不同(差异很大),因为第一次连接成功之后,要传输很多的业务逻辑,由于网络的原因,有一个业务逻辑数据走丢了,过了很久才传输到服务器,但是此时第一次连接已经断开,此时已经是第二次连接了,第一次的业务逻辑数据传输给服务器,此时服务器就需要判断这个序列号来丢掉这个数据,否则会出现问题。
原创
发布博客 2024.07.31 ·
661 阅读 ·
22 点赞 ·
0 评论 ·
15 收藏

TCP的socket的API

TCP处理连接中接收请求的当遇到空白符的时候才会读取完毕,使用这个scanner直接收到的就是字符串,如果使用inputstream的read()方法还需要将字节转化为字符串,客户端在发送请求的时候,必须在每个请求的末尾加上空白符,这个要求是程序员之间通信细节的约定,TCP是按照字节的方式来进行传输的,实际上我们希望若干个字节能构成一个应用层的数据报,区分一个应用层的数据报就是通过空白符来进行分割。等待客户端发送请求,服务器与客户端建立连接之后,返回一个socket对象,如果没有客户端发送请求就会阻塞。
原创
发布博客 2024.07.24 ·
1092 阅读 ·
25 点赞 ·
0 评论 ·
18 收藏

网络编程套接字

UDP数据报套接字编程socket的api在操作系统中,本身就有socket这样的概念,是对于操作系统socket概念的封装,系统中的socket可以理解成是一种文件(视为"网卡"的抽象表现形式,针对socket对文件进行读写操作,就相当于针对网卡这个硬件设备进行读写),文件是一个广义的概念包含很多硬件设备和软件资源针对UDP数据报的一个抽象表示,一个DatagramPacket就相当于是一个UDP数据报,一次发送/接收,就是传输了一个DatagramPacket对象。
原创
发布博客 2024.07.22 ·
687 阅读 ·
23 点赞 ·
0 评论 ·
18 收藏

初识网络基础知识

此时已经拥有了应用层数据包,把QQ程序调用操作系统的api,应用层要把数据交给传输层(操作系统内核提供api,socket api),传输层拿到应用层数据包之后,就会把这个数据包进行进一步的封装,构造出传输层数据包,此时传输层典型协议有两个TCP,UDP,此处假设使用UDP作为传输协议,UDP报头中存储着一些固定的属性比如发送人和接收人的端口号,后半部分是UDP数据包的载荷。假设QQ的应用层协议是这样的,四个信息分别是发送人,接收人的账号和发送时间及正文,中间用,分开,使用
作为结束标志,
原创
发布博客 2024.07.20 ·
566 阅读 ·
9 点赞 ·
0 评论 ·
12 收藏

Java文件IO操作知识点

I:input输入 O:output输出,这是一套人为规定的规则,下面这个图方便我们理解输入输出的定义,统一以CPU为基准在操作系统中其实把很多的资源都抽象成文件,我们在这里所说的文件就是"狭义"文件,平时保存在硬盘上的文件,文件夹也是一种文件,我们称之为目录文件,在硬盘上存储着很多文件和目录,目录之间又存在这一套嵌套关系,这整个结构是一个树形结构N叉树,
原创
发布博客 2024.07.18 ·
560 阅读 ·
21 点赞 ·
0 评论 ·
9 收藏

多线程进阶

策略也可以理解为做法,策略比较抽象,当这个锁在加锁/解锁遇到锁冲突的时候该去怎么做。
原创
发布博客 2024.07.15 ·
839 阅读 ·
13 点赞 ·
0 评论 ·
26 收藏

Java中多线程经典案例

相反懒汉模式则会引起线程不安全,因为懒汉模式是在有需要的时候才会去实例化对象,在多线程编程中懒汉模式要进行读和写操作,这一修改变量的值不是原子的,所有会造成线程不安全的问题,因此我们要使用synchronized对读和写操作进行加锁,打包成一个原子的操作,加锁会影响性能的问题,如果是第一次判断instance是否为空则需要加锁,若后续第二次...等,每次加锁都势必会影响性能问题,因此我们可以考虑在加一个if判断。
原创
发布博客 2024.07.08 ·
2147 阅读 ·
38 点赞 ·
0 评论 ·
32 收藏
加载更多