自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis(初阶)

redis‑cli:redis客户端命令行工具,用于连接redis服务执行指令。

2026-10-21 16:42:32 177

原创 数据库_存储引擎、事务、锁

存储引擎是,一张表选一个引擎,插件式架构。1.InnoDB(5.5 之后默认,生产必用)支持事务 ACID、MVCC、、外键聚簇索引,.ibd表空间文件redo、undo、doublewrite buffer,崩溃安全恢复适用:订单、支付,所有核心业务 OLTP2.MyISAM(老版本默认,现已淘汰)博客园无事务、无行锁、无 MVCC,,写锁整张表.frm表定义、.MYD数据、.MYI索引count (*) 不用统计直接拿缓存值;支持全文索引缺点:崩溃容易损坏数据,不支持外键。

2026-09-04 22:37:00 187

原创 数据库_日志

比如delete一条操作,就会把记录记到undo log中,执行回滚时,读取undo log数据,进行insert操作,相反插入回滚就会做删除操作,更新操作回滚就直接更新旧值。事务执行过程中,生成的 redolog 会在 redolog buffer 中,也就是在内存中,等事务提交的时候,会把 redolog 写入磁盘。,是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC。是 Innodb 存储引擎层生成的日志,实现了事务中的持久性,主要用于掉电等故障恢复。

2026-09-01 23:30:46 216

原创 数据库_索引

MySQL的索引是一种数据库,,索引通过一定规则排列数据表中记录,使得对表的查询可以一个索引搜索加快速度。

2026-08-28 23:07:56 204

原创 SpringBoot 从注解到源码:核心知识点总结

Component@Autowired@Component@Autowired其他还有很多种方式,如 A 依赖 B,B 依赖 C,C 依赖 A,或是 A 依赖 A 自己,只要产生了依赖关系的闭环,即造成了循环依赖。

2026-08-17 16:18:21 231

原创 微服务_Spring Cloud_OpenFeign与网关

OpenFeign 是声明式 Web 服务客户端,用于微服务之间远程 HTTP 调用,特点: 只需要定义接口 + 添加注解,就能像调用本地 Service 一样调用远程微服务接口,写法风格和 Controller 完全一致,屏蔽了 RestTemplate、原生 HttpClient 拼接 URL、处理请求的繁琐过程。

2026-08-09 23:40:03 269

原创 微服务_注册中心Eureka与Nacos

启动了。

2026-08-09 13:49:43 243

原创 Spring和Spring Boot和Spring MVC以及Spring各种设计模式

Spring 全家桶是以 Spring Framework 为核心的一系列项目集合。底层根基是 Spring Framework,衍生出 SpringBoot 简化单体开发;SpringCloud 处理分布式微服务;还有 SpringMVC 做 web 开发、SpringData 操作数据库、SpringSecurity 安全框架等。整套生态统一编程模型,互相兼容,覆盖单体、Web、数据库、微服务、安全等绝大多数 Java 开发场景。

2026-08-07 23:25:06 317

原创 spring原理

如果 Bean 只有局部变量,没有共享成员变量,就是线程安全的;一旦存在实例成员变量,多线程同时读写会出现并发问题。需要哪些Bean,第三方依赖最清楚,通常通过第三方依赖提供一个注解,注解一般由、@Enablexxx开头的注解,注解封装的就是@Import注解。@AutoConfigurationPackage自动导入配置类包,把启动类所在的包下所有组件注入到Spring容器中。1.通过@Bean声明bean,把bean存在Spring容器中。执行初始方法前置方法,执行初始化方法,执行初始化后置方法。

2026-07-25 16:51:57 196

原创 Spring IOC

DI(Dependency Injection)依赖注入:容器在运行期间动态为程序提供运行所依赖的资源,称之为依赖注入IOC和DI关系:IOC是思想,DI是实现方式,IOC是把对象交给Spring管理,DI是容器自动注入依赖五、Bean的存储@Controller(控制器存储)控制层,接收请求,对接收的请求进行处理,进行响应@Service(服务存储)业务逻辑层,处理具体业务逻辑@Repository(仓库存储)数据访问层,数据访问操作@Component(组件存储)

2026-07-24 19:45:42 176

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

事务是一组操作的集合,把所有操作作为一个整体,一起向数据库提交或者撤销,要么同时成功或者失败。完成某些功能时候如果第一步成功但第二步失败,就只能一起撤销,否则会产生不必要的错误,这就是为什么需要事务。

2026-07-22 00:22:11 242

原创 Spring Aop

不需要为每个对象目标创建一个代理对象,而是把代理对象的工作推迟到程序运行时,由JVM实现,即”业务来了再创建“

2026-07-13 22:31:00 273

原创 java初阶——JVM

JVM指的是Java虚拟机,虚拟机是指通过软件模拟具有完整硬件功能的,运行在一个完全隔离环境的完整计算机系统。

2026-05-03 11:48:14 451

原创 五层网络模型-(传输层,网络层,数据链路层)

TCP:有连接,可靠传输,面向字节流,全双工UDP:无连接,不可靠传输,面向数据报,全双工连接:虚拟连接,双方保存对方信息可靠传输:尽可能提高传输成功率,能感知到丢包;不可靠传输:只发送数据,不管其他面向字节流:读写数据以字节为单位;面向数据报:读写数据以数据报为单位;全双工:一个通信链路,支持双向通信(能读能写);半双工:一个通信链路,只支持单向通信(能读或者能写)

2026-04-21 17:29:01 590

原创 五层网络模型-应用层

满足我们日常需要的网络程序,都是在应用层,能够根据自己的需求设计应用层协议1.具体如何自定义协议?1.根据需求,明确传输什么信息例如一个外卖网站请求:用户的位置,id等等响应:商家的id,名字,位置,价格,评分等等2.约定信息组织的格式(有很多格式)一个请求响应有多行构成,响应每一行都是一个商家,每行包含某个商家信息1,肯德基(国贸店),北京市朝阳区建国门外大街,25,4.82,麦当劳(万达店),北京市朝阳区建国路99号,22,4.73,星巴克(中环店),北京市朝阳区光华路,35,4.9。

2026-04-20 23:01:32 445 1

原创 网络原理的初识

将多台计算机连接在一起,完成数据共享。1.网线直接连接2.基于集线器组建3.基于交换机组建4.基于交换机和路由器组建,例如)分公司以专线方式连接起来,即称广域网。将多个局域网连接起来,就形成广域网,其实就是互联网。

2026-03-24 16:33:49 404

原创 文件操作和IO

狭义上的文件是保存在硬盘上的文件,广义则是操作系统进行资源管理的一种机制,很多软件硬件资源抽象成文件来表示。

2026-03-18 09:48:29 388

原创 进阶_多线程1

1.悲观锁vs乐观锁(描述的是加锁的场景)悲观:加锁时候竞争非常激烈,就要针对这个激烈的情况做一些额外的工作乐观:加锁时候竞争不激烈,就不需要做一些额外的工作2.重量级vs轻量级锁(遇到场景后的解决方案)重量级:当悲观场景下使用,要付出更多代价(低效)轻量级:乐观场景下使用,付出代价更小(高效)3.挂起等待锁vs自旋锁挂起等待锁(重量锁的典型实现等待策略):操作系统内核级别,加锁时候发现竞争,就会使得该线程进入阻塞状态,后续需要内核进行唤醒。

2026-03-15 14:28:08 375

原创 初阶_线程3(多线程案例)

用处:减小每次创建,销毁内存的损耗,因为在线程池中取现成的线程,在应用程序可控,开销小,从操作系统创建新线程需要内核配合,不可控开销大,线程池可以省下应用程序切换到内核的开销。ThreadFactory threadFactory:创建线程的工厂,参与具体创建线程工作,通过不同的线程工厂创建出的线程相当于对属性进行不同的初始化设置。线程池相当于把线程提前创建好,放到一个地方(类似于数组),需要用时随时取,用完放回池子。int corePoolSize:核心线程数,这个线程池最少的线程,跟随线程池创建销毁。

2026-02-26 17:05:50 543

原创 初阶_多线程2(线程安全)

每个线程,有一个自己的“工作内存”(可理解为寄存器加L1,L2,L3缓存)同时这些线程共享同一个“主内存”,当一个线程循环进行上述读取变量操作时,就会把主内存中数据拷贝到工作内存中,后续另一个线程修改,也是先修改自己的工作内存,拷贝到主内存中,由于第一个线程仍然读自己的内存,因此感知不到主内存的变化。可以让后执行的线程逻辑让先执行的线程逻辑跑完,再通知他继续执行,对于jion只能让一个线程彻底执行完,那一个线程才能执行,wait也是等,但,等到另一个线程执行完notify,就可以继续走。

2026-02-19 12:24:06 1003

原创 初阶_多线程1(线程含义与关键属性)

一个线程是一个执行流,每个线程都可以按顺序执行自己的代码,多个线程“同时”执行自己的代码。

2026-02-08 19:28:22 711

原创 计算机如何工作

进程执行一会儿后,可能失去CPU,一段时间后继续使用进程会回到CPU上执行,就必须延续之前的状态而不能从头开始,进程在cpu运行过程中,cpu的各种寄存器就表示当前进程运行的"中间状态",目前常见操作系统:Windows系列,Unix系列,Linux系列(后端开发,服务器程序使用的主要系统),Mac OS系列,鸿蒙系列等,系统之间彼此不兼容。cpu的寄存器:cpu进行存储数据的位置,访问速度快于内存,存储空间更小更贵,主要是cpu进行执行指令各种运算时,

2026-02-04 14:27:40 863

原创 数据结构_Map和Set

TreemMap和TreeSet即java中利用搜索树实现的Map和Set,实际上用的是红黑树,而红黑树是一棵近似平衡的二叉搜索树,即在二叉搜索树的基础上+颜色以及红黑树 性质验证,关于红黑树内容后续进行详解。从 “负载因子和冲突率的关系粗略演示” 图可见,冲突率随负载因子增大而上升,且在负载因子达到一定值后,冲突率呈快速上升趋势。上面的查找适合静态查找,不会对区间进行插入和删除了,但现实中例如根据姓名查询成绩,可能查找时要进行插入和删除操作,即动态查找,那么Map和Set是一种适合动态查找的集合容器。

2026-02-03 17:46:47 1133

原创 数据结构_二叉树

层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第2层上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从0至n-1的结点一一对应时称之为完全二叉树。:以某节点为根的子树中任一结点都称为该节点的子孙,如所有结点都是A的=子孙。:若有一个结点含有子节点,则这个结点称为其子节点的父节点;:从根节点开始定义,根为第一层,根的子节点为第二层。:度为0的结点为叶节点;

2025-10-27 13:08:41 999

原创 数据结构_栈和队列

队列是一种特殊的线性表,具有**先进先出(FIFO)**的特性。仅允许在一端(队尾,Tail/Rear)进行插入操作(入队,Enqueue),在另一端(队头,Head/Front)进行删除操作(出队,Dequeue)。5.设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。:借助栈的“后进先出”特性,先将链表所有节点按顺序入栈,再依次出栈打印,从而实现逆序。:利用递归的“回溯”特性,先递归遍历到链表末尾,再从后往前打印节点值,实现逆序。1.通过添加size属性纪录。

2025-10-13 20:14:12 1054

原创 数据结构_LinkList与链表

逻辑顺序实现:通过每个数据元素(通常称为 “节点”)中存储的引用(或指针) 来指示下一个(或上一个)节点的位置,从而将分散的节点串联起来,形成一个有序的逻辑序列。,效率比较低,因此ArrayList不适合做任意位置插入和删除比较多的场景。这意味着链表中的数据元素在计算机内存中不是紧密排列的,而是分散存储在不同的内存地址上。3.从堆上申请的空间,是按照一定的策略来分配的,两次申请的空间可能连续,也可能不连续。1.链式结构在逻辑上是连续的,但是在物理上不一定连续。2.现实中的结点一般都是从堆上申请出来的。

2025-09-28 19:47:08 2158

原创 数据结构_ArrayList与顺序表

ArrayList 简介类的性质:普通类,实现了 List 接口,以泛型方式实现,使用时需先实例化。实现的接口IterableCollectionListCloneable。实现表明支持随机访问;实现Cloneable表明可以克隆;实现表明支持序列化。1.ArrayList 是以泛型方式实现的,使用时必须要先实例化2.ArrayList 实现了 RandomAccess 接口,表明 ArrayList 支持随机访问。

2025-09-23 19:15:01 761

原创 数据结构_数据结构基本准备知识

一般的类和方法,只能使用具体的类型(要么是基本类型,要么是自定义的类)。若要编写能应用于多种类型的代码,这种只能用具体类型的限制会对代码束缚很大(该表述参考《Java 编程思想》对泛型的介绍)。泛型是在 JDK1.5 引入的新语法,通俗来讲,泛型就是适用于许多类型从代码角度讲,就是对类型实现了参数化。

2025-09-13 21:36:12 1085

原创 初学java_认识异常

方式:1.自定义异常,继承Exception或者RuntimeException2.实现带有一个String类型参数的构造方法,参数含义:出现异常原因以下是分别继承Exception(受查异常)和(非受查异常)的自定义异常例子及使用场景。继承Exception(受查异常)的例子自定义异常类super();自定义异常类super();登录验证方法(使用受查异常)if (!throw new UserNameException("用户名错误!");if (!

2025-09-04 23:24:21 1934

原创 初学java_String类

代码解析定义字符串s为"abababcd",使用方法从字符串末尾开始查找字符'a'最后一次出现的索引,找到后将索引值赋给index,最后输出index,结果为5。

2025-09-02 16:11:55 1029

原创 初学java_图书馆管理系统

【代码】初学java_图书馆管理系统。

2025-08-30 15:39:26 946

原创 初学java_接口的实例

缺陷:这个比较方式一般用于固定的比较,不适合非常灵活的比较。用途:在默认的比较上。

2025-08-29 14:25:00 1955

原创 初学java_抽象类和接口

修饰的,用其他修饰都是错3.Jdk8以后当接口中方法被。

2025-08-25 19:02:20 948

原创 初学java_继承和多态知识梳理

和继承类似,组合也是一种表达类之间关系的方式,也是能够达到代码重用的效果。组合并没有涉及到特殊的语法(诸如extends这样的关键字),仅仅是将一个类的实例作为另外一个类的字段。》当父类与子类两个成员变量重名时,像下面n一样,那么this调用的是父类的n,要调用父类的n就只能用super.也称为后期绑定(晚绑定),即在编译时,不能确定方法的行为,需要等到程序运行时,才能够确定具体调用那个类的方法。当父类和子类都有同名属性的时候,通过父类引用,只能引用父类自己的成员属性。

2025-08-23 18:01:16 796

原创 初学Java_类和对象知识梳理

java是一门面向对象的语言(Object Oriented Program,简称OOP),面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序,更符合人们对程序的认知,对于大型程序的设计、扩展以及维护都非常友好。类是用来对一个实体(对象)进行描述的,主要描述实体(对象)具有哪些属性(外观尺寸等),哪些功能(用来干什么),描述完成后计算机就可以识别。例如:生活中洗衣机作为一个类。属性:品牌、型号、价格、重量、颜色、尺寸等等功能:洗衣服、烘干等等。

2025-08-20 11:59:17 845

空空如也

空空如也

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

TA关注的人

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