自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 (四)MySQL 事务

第二个例子:对于当前读,如果事务开启后,并没有执行当前读,而是先快照读,然后这期间如果其他事务插入了一条记录,那么事务后续使用当前读进行查询的时候,就会发现两次查询的记录条目就不一样了,所以就发生幻读。**第1类丢失更新:**两个事务均进行更新操作,相互影响,某一事务撤销影响最终结果的准确性。**第1类丢失更新:**两个事务均进行更新操作,相互影响,某一事务撤销影响最终结果的准确性。**第2类丢失更新:**事务A覆盖事务B已经提交的数据,造成事务B所做的操作丢失。(对应的是更新操作)(对应的是插入操作)

2024-05-20 15:45:29 596

原创 (三)MySQL 索引

提高查询效率的一种数据结构,索引是数据的目录查询的数据能在二级索引里查询的到,不需要通过主键索引查询获得,可以避免回表的操作假设我们只需要查询商品的名称、价格,有什么方式可以避免回表呢?我们可以建立一个联合索引,即「商品ID、名称、价格」作为一个联合索引。如果索引中存在这些数据,查询将不会再次检索主键索引,从而避免回表。

2024-05-20 15:44:53 1033

原创 (二)MySQL 存储引擎

InnoDB 使用索引组织表储存,默认行号建立主键索引,数据在叶子节点上。普通索引上面存储的是自己的键值和主键索引,所以查询需要回表。行锁表锁,支持事务和外键约束。MyISAM 使用堆表存储,可以没有索引,主键索引和普通索引一样,叶子节点都存储的都是数据的物理地址。支持表锁,不支持事务和外键约束;MyISAM 和 InnoDB,默认InnoDB。

2024-05-20 15:44:03 287

原创 (七)Redis高可用

欢迎访问AOF 和 RDB,这两个持久化技术保证了即使在服务器重启的情况下也不会丢失数据(或少量损失)。不过,由于数据都是存储在一台服务器上,会出现单点故障。解决的最好办法是将数据备份到其他服务器上,让这些服务器也可以对外提供服务,这样即使有一台服务器出现了故障,其他服务器依然可以继续提供服务。多台服务器要保存同一份数据,这些服务器之间的数据如何保持一致性?

2024-05-11 16:46:10 337

原创 (六)Redis缓存

欢迎访问。

2024-05-11 16:45:21 564

原创 (五)Redis过期删除和内存淘汰

当 Redis 进行内存淘汰时,会使用。

2024-04-30 14:38:55 332

原创 (四)Redis线程模型

时钟中断之后,内核会去检查发起 epoll_wait 的线程有没有超时,如果超时了就会唤醒这个线程。调用者就会得到超时响应。只不过 Redis 的主线程同时扮演了 Reactor 中分发事件的角色,也扮演了接收请求的角色。当客户端发出请求的时候,主线程会收到一个可读的事件,于是它把对应的客户端丢到可读的客户端列表。第二种情况就是就绪列表里面没有符合条件的套接字,这时候传入不同的超时时间,会有不同的响应。如果 Redis 拿到了创建连接的文件描述符,就会完成连接的初始化,然后准备监听这个连接上的读写事件。

2024-04-29 21:52:25 741

原创 (三)Redis持久化

RDB持久化过程中,Redis会生成一个压缩过的二进制文件,该文件包含了某个时间点上数据库中所有的键值对。快照持久化是 Redis 默认采用的持久化方式,在redis.confsave 900 1900 秒之内,对数据库进行了至少 1 次修改;300 秒之内,对数据库进行了至少 10 次修改;60 秒之内,对数据库进行了至少 10000 次修改。这是自动化持久化配置,满足上面条件就会自动执行 bgsave,创建子进程来生成 RDB 快照文件。

2024-04-29 17:23:22 610

原创 (二)Redis数据类型和数据结构详解

生产者会不会丢消息,取决于生产者对于异常情况的处理是否合理。计算出剩余的空间大小,可以用来判断空间是否满足修改需求,如果不满足的话,就会自动将 SDS 的空间扩展至执行修改所需的大小,然后才执行实际的修改操作,所以使用 SDS 既不需要手动修改 SDS 的空间大小,也不会出现前面所说的缓冲区溢出的问题;例如,LBS 应用执行下面的命令时,Redis 会根据输入的用户的经纬度信息(116.054579,39.030452 ),查找以这个经纬度为中心的 5 公里内的车辆信息,并返回给 LBS 应用。

2024-04-28 19:57:48 866

原创 (一)Redis基础

通过 Module 来扩展其功能以满足特殊的需求。这些 Module 以动态链接库(so 文件)的形式被加载到 Redis 中我们每个人都可以基于 Redis 去定制化开发自己的 Module,比如实现搜索引擎功能、自定义分布式锁和分布式限流。:用于实现搜索引擎的模块:用于处理 JSON 数据的模块:用于实现布隆过滤器的模块。

2024-04-26 14:12:17 912

原创 终端复用工具tmux简单使用

上面命令执行后,会退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行。tmux ls 命令可以查看当前所有的 Tmux 会话。下面是一些会话相关的快捷键 (Tmux 窗口中使用)可退出窗口,退出会话中所有窗口即可退出会话。命令用于为当前窗口起名(或重命名)。命令,就会将当前会话与窗口分离。下面是一些窗口操作的快捷键。在 Tmux 窗口中,按下。命令用来创建新窗口。

2024-04-18 15:21:54 359

原创 (一)MySQL数据类型

在删除自增为 3 的这条记录后,下一个自增值依然为 4(AUTO_INCREMENT=4),这里并没有错误,自增并不会进行回溯。列中的字符串的长度小于指定的字符长度,MySQL 会在源字符串后填充空格一直到指定的长度。存储的最大长度为多少个字符,实际占用的存储空间取决于存储的数据长度。如果要存储超过 2038 年的时间值,则应使用。个字节,这也是 MySQL 中的行大小的限制。列中的值时,MySQL 会删除后面的空格。4 位数字的年份值的字符串形式,从。2 位数字的年份值的字符串形式,从。

2024-04-07 20:17:26 865

原创 MySQL的DQL中含NULL

如果 expression, min, max 至少有一个 NULL 时, BETWEEN 运算符的返回 NULL。LIKE运算符的两个操作数中任意一个为 NULL 时,返回 NULL。在本文中,我们讨论在 MySQL 中的。在 MySQL 中的升序排序中,值都是相同的,这与字段的类型无关。值出现在非 NULL 值之前。

2024-04-02 20:09:00 278

原创 OSI模型和TCP/IP模型

网络层与数据链路层都是基于目标地址将数据发送给接收端的,但是网络层负责将整个数据,而数据链路层则只负责发送一个分段内的数据。与网络层一样,数据链路层也负责网络内部通信流量控制和错误控制(传输层仅负责网络间通信流量控制和错误控制)注1。数据包的路由和转发(路由器,网络层协议包括IP, 互联网控制消息协议(ICMP))处理数据的表示和转换,确保不同系统的数据格式能够互相理解(数据加密,数据压缩)提供端到端的数据传输服务,确保数据的可靠传输和流量控制(TCP、UDP)数据链路层从网络层提取数据。

2024-04-02 11:28:22 692

原创 ArrayList的扩容机制

0->10的机制其实是,初始判断为空时设置minCapacity为默认值10,这样oldCapacity = 0, 0的1.5倍还是0,newCapacity便等于 minCapacity = 10.同样,如果需要的minCapacity ,在扩容1.5倍后仍然不能满足,newCapacity应等于minCapacity。如果需要的minCapacity 如17,在扩容1.5倍后仍然不能满足,newCapacity应等于17。一个一个加元素,0->10->10的1.5倍。

2024-03-21 21:46:10 256

原创 静态泛型方法

java 中泛型只是一个占位符,必须在传递类型后才能使用,而类在实例化的时候才传递类型参数。静态方法的加载先于类的实例化,也就是说类中的泛型还没有传递真正的类型参数,静态的方法的加载就已经完成了,它们在编译时期并不会引用类上声明的泛型类型参数。因此,在静态方法中,无法直接访问类上声明的泛型类型参数。如果需要在静态方法中使用泛型类型,可以将泛型类型参数声明在方法自身上,例如。

2024-03-20 20:41:50 357

转载 接口和抽象类有什么共同点和区别

著作权归JavaGuide(javaguide.cn)所有 基于MIT协议 原文链接:https://javaguide.cn/java/basis/java-basic-questions-02.html。抽象类可以有抽象方法,这些方法只有声明而没有具体实现,需要在子类中实现。子类继承抽象类时,必须重写抽象类中的所有抽象方法,否则子类也必须声明为抽象类。接口:如果接口中只包含抽象方法,则实现接口的类必须实现接口中的所有抽象方法。如果接口中包含默认方法或静态方法,实现类可以选择性地实现这些方法。

2024-03-20 15:04:58 8

转载 基本类型和变量

当虚拟机进行逃逸分析后,如果发现某个对象并没有逃逸到方法外部,即对象的引用仅在当前方法内部使用,那么就可以通过标量替换来将对象的成员变量拆分为标量值,然后在栈上分配这些标量值,而不是在堆上分配整个对象。这种优化可以减少堆内存的使用,提高程序的性能。这是因为 HotSpot 虚拟机引入了 JIT 优化之后,会对对象进行逃逸分析,如果发现某一个对象并没有逃逸到方法外部,那么就可能通过标量替换来实现栈上分配,而避免堆上分配内存。也就是说,静态变量只会被分配一次内存,即使创建多个对象,这样可以节省内存。

2024-03-19 21:53:28 15

原创 封装、继承、多态

例如,小明同学、小红同学、小李同学,都共享学生的特性(班级、学号等)。继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。通过使用继承,可以快速地创建新的类,可以提高代码的重用,程序的可维护性,节省大量创建新类的时间 ,提高我们的开发效率。封装是指把一个对象的状态信息(也就是属性)隐藏在对象内部,不允许外部对象直接访问对象的内部信息。多态,顾名思义,表示一个对象具有多种的状态,具体表现为父类的引用指向子类的实例。

2024-03-19 21:33:03 297

原创 为什么父类方法访问修饰符为 private/final/static 则子类就不能重写该方法

​ 在Java中,static方法属于类级别,这意味着它们与特定的实例对象无关,而是与整个类相关联。因此,static方法在编译时就确定了调用哪个方法,而不是在运行时根据实例对象的类型来确定。​ 由于static方法的调用在编译时就确定了,而不是在运行时确定,所以子类无法重写父类的static方法。子类可以定义与父类static方法同名的方法,但这只是在子类中隐藏了父类的方法,并不能称之为重写。private 修饰的方法是私有方法,只能在当前类中访问,子类无法访问到这个方法,更不用说重写了。

2024-03-19 20:40:18 219

原创 【算法】 n^2排序

用来测试算法是否正确,将自己写的算法与正确的算法对比结果。

2023-11-29 20:24:53 30

原创 算法-二分查找

规定:边界arr[0]

2023-11-29 11:36:14 24

原创 腾讯云轻量级服务器-Cloudreve-COS十分钟搭建个人云盘

一、购买轻量级服务器新用户很便宜,一年99元,如果只是建博客和个人的网盘,1核2G5M完全够用了,镜像选CentOS,也可以先随便选一个,这里没有Cloudreve的镜像,到时候再重置二、重置镜像买完后进入服务器的控制台,点重置应用,重置为Cloudreve的应用镜像,等待重置完成镜像默认使用的是80端口,所以直接在浏览器输入服务器的公网IP就可以看到Cloudreve的登录界面,也可以更改Nginx配置自定义端口连接上服务器终端输入cat ~lighthouse/credentials.

2021-05-16 13:35:09 2943 2

原创 将Hexo部署到云服务器(使用宝塔面板)

本来Hexo是部署在GitHub上的(可以看我之前文章Hexo搭建静态博客 - Taitres’ Blog包括了Hexo的基本使用),但是访问太慢了,并且想折腾一下,还想整个个人云盘,就买了个腾讯云的轻量应用服务器,把Hexo搬过来了,看了很多文章,记录下最终的解决方案。思路是:在服务器上搭建Git环境,创建Git仓库在主机生成Hexo静态文件,通过与服务器连接,推到服务器上的Git仓库通过git-hooks实现自动部署到网站资源目录Nginx做静态文件服务器,实现外界对网站资源目录的访问一

2021-05-12 19:37:24 1652

原创 日期差值

题目链接1.题目分析:日期的表示:一共8位数,年应该为time/10000,日为time%100,月份为time%10000-time%100排列大小,大的为 time1,小的为time2日期相差,先将年月单独看,月份用不断增加到年月相等,同时建立一个数组记录每月天数,最后日期再用相减,日期相减+1再加上前面的天数为最终天数做一个判断闰年的函数,是闰年为1,不是为02.代码实现#include <stdio.h>int month[13][2]={ {0,0},{31,31

2021-05-11 10:59:34 86

原创 Repeater

[题目链接](Repeater_牛客题霸_牛客网 (nowcoder.com))1.题目分析输入:要求第一行为N,使基本图形为N*N(N只能是3,4,5),第二行为基本图形,第三行为重复的比例级别。用一个二维数组来存储基本图形,之后遍历图形,level从0开始,遇到字符就用基本图形去填充结果,遇到空格就用len*len个空格(len与=n的level次方)去填充,循环一次更新结果,使结果作为新的模板,直到level达到输入的要求。2.代码实现#include <iostream>#i

2021-04-15 15:27:51 87

原创 学生信息管理系统,C语言链表

读取和保存函数是实现功能的重要函数,在每次修改前需要调用读取函数拉起链表,修改后需要调用保存函数,存入文件0.0读取学生信息void ReadStudent(){ FILE * fp; char k; if ((fp = fopen("D:\\demo.txt", "r")) == NULL) { //以只读方式打开文件 printf("无学生信息"); exit(1); } //从文件读取信息 while (!feof(fp)){ Node* p = (Node*)mall

2021-03-12 20:36:30 977 1

885专业课参考资料.zip

北京理工885专业课参考资料,2004-2008真题,数据结构1800题,数据结构1800题(答案全),2013部分真题

2020-05-13

空空如也

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

TA关注的人

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