- 博客(45)
- 收藏
- 关注
原创 Mysql事务特性及原理
在事务提交后,先把数据写到redo log日志文件中,再向库中去持久化,一旦期间断电宕机,那么服务恢复后,会将redo log文件中的数据再次写入到库中.可重复 读:称为快照读,在同一个事务中,第一次查询时,生成一个版本快照(readview),下一次再读取时,还是从快照中读,这样就保证可重复读.读 已提交: 称为当前读, 每次读取时,都会获取一个最新的快照, 即使是在同一个事务中的两次读取.都是读到最新内容.实现不同的事务在写-读,读写操作时,可以同时进行,提高并发访问能力。由其他三个特性来保障。
2025-08-22 15:35:28
228
原创 mysql为什么不用二叉搜索数 红黑树 B树,而使用 B+树
那当我们想要查找数据结尾的那一个元素的时候,它的扫描方式就和我们全表扫描的方式有点类似。相比于二叉树,红黑树则进一步做了优化,它是一种自适应的平衡树,会根据插入的节点数量以及节点信息,自动调整树结构来维持平衡。)innodb的B+树的叶子节点是页(Page),页之间是双向链表,页内部有一个单向链表,这个单向链表是用来存储记录的。B树和红黑树相比,其单节点可容纳多个数据,就能在很大程度上改善其性能,使B树的树高远远小于红黑树的高度。任意节点的左节点不为空时,左节点值小于根节点值;
2025-08-21 08:40:10
286
原创 ssm复习
其中环绕通知可以模拟出其他所有的通知只在调用方法前做事情-------前置通知用trycatch在finally里面写的东西就是------后置通知用trycach在try大括号结束之前原始方法调用之后的通知就是-------返回后通知catch模拟--------抛出异常后通知。
2025-08-06 21:01:01
1037
原创 Nacos Discovery--服务治理
服务治理是微服务架构中最核心最基本的模块。用于实现各个微服务的自动化注册与发现。服务注册:在服务治理框架中,都会构建一个注册中心,每个服务单元向注册中心登记自己提供服 务的详细信息。并在注册中心形成一张服务的清单,服务注 册中心需要以心跳的方式去监测清单中 的服务是否可用,如果不可用,需要在服务清单中剔除不可用的服务。服务发现:服务调用方向服务注册中心咨询服务,并获取所有服务的实例清单,实现对具体服务实 例的访问。
2025-06-17 16:23:01
931
原创 哈希map中不能将数组作为键的原因 leetcode49
1使用数组(char[])作为 HashMap 的键。由于数组的 equals() 和 hashCode() 方法是基于引用而非内容的,即使两个数组内容相同,它们也会被视为不同的键,导致无法正确分组字母异位词。输出错误,可以看到,hashmap没有起到分组的多用。是由重新排列源单词的所有字母得到的一个新单词。此时应该将键替换为String类型的,它们的。可以按任意顺序返回结果列表。由leetcode49得来。给你一个字符串数组,请你将。
2025-06-08 13:03:01
341
原创 什么是跨域,解决跨域的常用方法
跨域是指浏览器发起 HTTP 请求时,当前网页所在源(协议、域名、端口组合)与请求目标源不一致的情况. (只有在前端才会发生)出现此类报错,由于浏览器的同源策略导致的,防止不同网站之间的窃取信息,由于我的项目后端运行在8088服务,前端运行在80端口,前端80端口向后端8088端口发送请求时,会引发跨域问题,
2025-04-21 21:14:04
214
原创 Spring SpringBoot 细节总结
class A{@AutowiredB b;class B{@AutowiredA a;//创建A对象时,关联对象b为null//创建B对象时,关联对象a为null虽然A,B之间相互关联,但是创建对象时没有任何问题.但是在spring中会存在循环依赖问题(spring已经解决了此问题)在spring中如果使用@Autowired注解,那么在创建A对象时,需要为关联的b对象注入值, 需要去创建对象b,创建对象b时,需要为关联的a注入值,但是此时a还没创建完成, 形成死循环.
2025-04-02 21:05:28
734
原创 MySQL进阶 面试速记
数据库事务就是对一次数据库操作过程的管理.保证一次与数据库交互过程中执行的多条sql要么都成功执行,要么都不执行,保证原子性.例如转账,一次转账操作有两个sql,一个给A账号减钱, 一个给B账号加钱,保证两个操作都没有问题例如购物下订单, 一个是卖家下订单,一个付款.
2025-04-01 20:58:15
924
原创 并发编程 面试速记
线程是进程中的一个最小执行单元,是一个独立的任务,是cpu执行的最小单元.把一些独立的任务放在线程中执行,多个线程可以同时并行的执行,提高了程序效应处理的速度.类 继承 Thread类类 实现Runnable接口 重写public void run() { } new Thread(任务)类 实现Callable接口 重写public T call()throws Exception{} 可以抛出异常使用线程池创建run() 执行的任务start() 启动线程sleep(时间);
2025-03-22 20:10:45
919
原创 HashMap ,HashTable , ConcurrentHashMap 面试
双列集合 存储keyvalue 底层数组的形式存在,初始值 为16 也可以在new HashMap的时候指定HashMap的大小new出来的大小是2的幂次方 负载因子为0.75。是线程安全的,方法上都加了锁 假如有两个线程同时读,也只能一个一个的读,并发效率低。如果该节点没有值,并且没有锁,则采用cas比较并交换思想,实现多线程的put操作。低位元素依然放到原来的位置,然后高位放在原来的+扩容的长度。线程安全(分段锁)将锁的粒度进一步细化,提高并发效率。并非线程安全的,在多线程环境下使用可能会出现问题。
2025-03-14 18:46:40
421
原创 阿里云服务器部署项目笔记 实操 centos7.9
阿里云服务器部署项目笔记 实操 centos7.9springboot +vue +elementUI+mysql+redis相关的redis,mysql,nginx镜像,jdk通过网盘分享的文件:docker镜像
2025-03-03 14:54:49
1099
1
原创 JavaPro _JVM 知识点速记 JVM大全
在运行过程中,如果一个对象没有被任何引用所指向,那么这个对象就称为垃圾对象.如果垃圾对象不清理,后来的对象就可能没有地方存放,进而导致内存溢出.
2025-03-01 20:02:25
1249
原创 两个栈模拟队列java
case1 当栈b有数据时, 不能直接推 (会导致顺序错乱)case 2 当栈b无数据时, 直接推进去。注意: 将栈a 的数据推到 栈b 时。思想:将栈进行两次反转即可模拟队列。
2024-11-30 13:24:00
256
原创 Arrays.copyOfRange(),System.arraycopy() 数组复制,数组扩容
本文讲了Arrays.copyOfRange()方法针对数组的使用底层创建一个长度为to-from的数组将原数组中的数据从从索引form 复制长度为min(form到to,length-from) 复制到copy这个数组中并返回copy这个数组.复制时有两种情况to-from小于原数组的长度 此时相当于截取复制to-from大于原数组的长度 此时相当于扩容复制。
2024-11-29 20:20:58
961
原创 Java----面向对象----总复习
思想:从宏观上 帮助我们把握,整体分析整个系统,但是,具体到实现时,仍需要面向过程的思路去处理所以,面向对象离不开面向过程.
2024-06-29 23:22:03
1195
原创 Vue-cli搭建项目----基础版
全称:Vue command line interface 是一个用于快速搭建Vue.js项目的标准工具,他简化了Vue.js应用的创建和管理过程,通过命令工具帮助开发者快速生成,配置和管理Vue项目.主要功能同一的目录结构本地调试热部署单元测试集成打包上线。
2024-06-26 00:40:11
926
原创 SQL 命令---DDL,DQL,DML命令
DDL或数据定义语言实际上由可用于定义数据库模式的SQL命令组成,他只是处理数据库模式的描述,用于创建和修改数据库中数据库对象的结构.DDL是一组SQL命令,用于创建,修改和删除数据库结构,但不用于创建,修改和删除数据,一般用户通常不使用这些命令,他们应该通过应用程序访问数据库.DDL的命令表命令描述语法CREATE创建数据库或其对象(表,函数,视图,存储过程,和触发器)DROP从数据库中删除对象ALTER改变数据库结构TRUNCATE。
2024-05-16 21:49:08
807
原创 Java网络——套接字的使用
JavaSocket编程可以使面向连接的,也可以是无连接的,在套接字编程中Socket和ServerSocket类是为面向连接的套接字编程而管理的,而DatagramSocket和DataPacket类用于无连接套接字编程。网络协议是一组有组织的命令,定义数据如何在同一网络中的不同设备之间的传输,网络协议是用户可以轻松地与世界各地通讯的原因,因此现在的数字通讯发挥着至关重要的作用,例如,TCP,FTP,POP等。在构造函数中,程序尝试建立与指定服务器的连接,如果成功,则打印"已连接"。
2024-04-08 22:24:32
738
1
原创 Java中的多线程-总结
多线程是java中的一种功能,允许并发执行程序中的两个或者多个部分,以最大限度的利用CPU。此类程序的每个部分称为线程,因此线程是进程中的轻量级进程。我们创建一个继承java.lang.thread类的类。该类重写Thread中的run()方法。Thread类中的run方法本身并不执行任何操作,如果我们重写了run方法,当线程启动时,它将执行 run方法。线程在run()方法中开始其生命周期。
2024-04-07 20:51:25
828
2
原创 Java中的继承
在java中,继承是oop(面向对象编程)的重要支柱,它是java中的一种机制,通过该机制,一个类可以继承另一个类的功能(字段或者方法)。在java中,继承意味着基于现有的类创建新类。从另一个类继承的类可以重用该类的方法方法和字段。此外,您还可以向当前类添加新字段和方法。
2024-03-02 16:51:38
1170
1
原创 Java中的对象和类
类 是一组具有公共属性的对象。它用于创建对象的模板或者蓝图,他是一个逻辑实体,不是物理存在的。(例如人类)Java中的类可以包括领域方法构造函数块嵌套和接口类的声明语法field;method;这段代码定义了一个类,类名为,包含了成员变量(field)和方法(method)。
2024-03-02 09:17:42
1048
原创 内部排序方法总结---插入类,交换类,选择类
插入类: 直接插入排序:折半插入排序:希尔排序:交换排序:冒泡排序:快速排序:选择排序:简单选择排序:堆排序:
2024-01-25 21:59:16
965
1
原创 java中简单程序分析,数据类型,变量于常量,运算符,字符串,输入于输出,控制流程,数组。
java中简单程序分析,数据类型,变量于常量,运算符,字符串,输入于输出,控制流程,数组。
2023-12-31 17:06:14
1090
1
原创 JAVA第一课----java的预备知识,java环境搭建,IDEA下载
JDKJDK是Java开发工具包,它是开发Java应用程序所必需的。它包含了Java编译器(javac)、Java运行环境(JRE)、Java文档生成工具(javadoc)、以及其他一些用于开发、调试和监控Java应用程序的工具。简而言之,JDK是编写、编译、运行Java程序的基础环境。(在bin项目中)JRE(java Runtime Environment)是java运行环境,提供了运行java应用程序所需的所有组件。JVM。
2023-12-22 21:30:35
131
原创 数据结构实验项目四-----图的邻接矩阵,邻接表,基本操作和实现
算法描述://顶点集//邻接矩阵}AMGraph;//adiacency matrix graph 邻接矩阵用邻接矩阵表示法表示法表示图,除了一个用于存储邻接矩阵的二维数组外,还需要用一个一维数组来存储顶点信息。1》便于判断两个顶点是否有边,可以根据A[i][j]=0或者1来判断。2》便于计算各个顶点的度。对于无向图第i行元素之和就是该顶点vi的度,对于有向图,第i行元素之和就是改顶点vi的出度,第i列元素就是之和就是该顶点vi的入度。1》不便于增加和删除顶点。
2023-12-03 23:39:45
741
3
原创 链式二叉树基本的操作C实现——(初始化,先序创建二叉树,先序遍历输出,中序遍历输出,后序遍历,返回二叉树的深度,输出叶子节点个数,销毁二叉树,查找元素所在节点)(关于二级指针)
链式二叉树基本的操作C实现——(初始化,先序创建二叉树,先序遍历输出,中序遍历输出,后序遍历,返回二叉树的深度,输出叶子节点个数,销毁二叉树,查找元素所在节点)(关于二级指针)
2023-11-19 20:03:37
233
1
原创 一维数组,二维数组,数组名与地址的关系。
我们知道数组名代表的是数组首元素的地址。这里数组a的地址为 0000006864D6F7F8 那么在地址加1是什么;这里地址单元加了4(地址以十六进制表示)这里的a+1的 1 表示偏移量与前面的a有关。a表示的是4个字节的数组的首地址。加一表示第二个元素的位置。那么第三个与第二个表示相同。&a 表示的是整个数组这里&a与&a+1相差了24个字节所以偏移量为整个数组。补充除 &a 表示整个数组外,还有 sizeof(a)标识符中的a也表示整个数组。
2023-11-05 19:40:15
770
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅