救救头发
码龄4年
关注
提问 私信
  • 博客:16,289
    16,289
    总访问量
  • 52
    原创
  • 911,330
    排名
  • 2
    粉丝
  • 0
    铁粉

个人简介:记录个人学习笔记

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2020-11-24
博客简介:

qq_52878986的博客

查看详细资料
个人成就
  • 获得23次点赞
  • 内容获得0次评论
  • 获得8次收藏
创作历程
  • 28篇
    2022年
  • 24篇
    2021年
成就勋章
TA的专栏
  • 数据库
    4篇
  • Redis
    4篇
  • 操作系统
    10篇
  • JVM
    10篇
  • 数据结构
    4篇
  • java基础
    14篇
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

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

数据库范式

1NF表中的字段不可再分割。1NF 是所有关系型数据库的最基本要求 ,也就是说关系型数据库中创建的表一定满足第一范式。(eg:省市区,不行,可再分)2NF在1NF的基础上,消除了非主属性对码的部分依赖(eg:学号、身份证号、姓名,通过两个号都能找到姓名,姓名部份依赖于学号和身份证号)3NF在2NF的基础上,消除了非主属性对码的传递依赖(每个属性跟主键有直接关系,eg:学号、系名、系主任,通过找到系名才找到系主任,不行)...
原创
发布博客 2022.03.11 ·
0 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据库范式

1NF表中的字段不可再分割。1NF 是所有关系型数据库的最基本要求 ,也就是说关系型数据库中创建的表一定满足第一范式。(eg:省市区,不行,可再分)2NF在1NF的基础上,消除了非主属性对码的部分依赖(eg:学号、身份证号、姓名,通过两个号都能找到姓名,姓名部份依赖于学号和身份证号)3NF在2NF的基础上,消除了非主属性对码的传递依赖(每个属性跟主键有直接关系,eg:学号、系名、系主任,通过找到系名才找到系主任,不行)...
原创
发布博客 2022.03.11 ·
617 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MyISAM和InnoDB的区别

1.是否支持行级锁MyISAM 只有表级锁,而 InnoDB 支持行级锁和表级锁,默认为行级锁。2.是否支持事务MyISAM 不提供事务支持。InnoDB 提供事务支持,具有提交(commit)和回滚(rollback)事务的能力。3.是否支持外键MyISAM 不支持,而 InnoDB 支持。4.是否支持数据库异常崩溃后的安全恢复MyISAM 不支持,而 InnoDB 支持。使用 InnoDB 的数据库在异常崩溃后,数据库重新启动的时候会保证数据库恢复到崩溃前的状态。这个
原创
发布博客 2022.03.11 ·
1614 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

事务的特性

什么是事务若干条语句,要么全部执行成功,要么全部失败事务的特性(ACID):1.原子性:整个数据库事务是一个不可分割的单位。只有所有的语句都成功,整个事务的执行才算成功;有任何一条sql语句执行失败,那么已执行的成功的语句也会撤销,数据库回退到执行事务之前的状态2.一致性:事务开始前和结束后,数据库的完整性约束没有改变。比如:A给B转钱,无论是否成功,两人的账户总额是不会改变的3.隔离性:在并发数据操作时,不同的事务拥有各自的数据空间,各自的操作不会对彼此产生影响4.持久性:数据一旦
原创
发布博客 2022.03.03 ·
573 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据库索引

定义:索引是一种用于快速查询和检索数据的数据结构优点:1.加快数据检索速度2.通过创建唯一性索引,保证数据库表中每一行数据的唯一性缺点:1.创建和维护索引也会耗费时间2.索引需要占用磁盘空间3.对数据进行增删改查的时候,索引也要动态的维护适合加索引:1.where中经常使用的字段2.不经常更新的字段3.数据量大的表4.数据离散度大(性别,真假等不适合)5.不参与计算的列(防止索引失效)不走索引的情况:1.like xxx2.索引列参与了运算
原创
发布博客 2022.03.03 ·
647 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

缓存穿透;缓存雪崩

缓存穿透简单来说就是大量请求的key不在缓存中,请求直接到了数据库上,没有经过缓存解决方法:1.做好参数检验,如:id不能小于02.缓存无效key:数据库和缓存中都没有的数据写到一个Redis中, 设置过期时间3.布隆过滤器:布隆过滤器说某个元素存在,小概率会误判。布隆过滤器说某个元素不在,那么这个元素一定不在缓存雪崩:缓存在同一时间大面积失效,导致后面的请求直接到数据库,造成数据库短时间内承受大量数据解决方法:1.Redis集群,避免整个服务都不可用2.设置不同的缓存时间,
原创
发布博客 2022.03.02 ·
332 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis持久化

1.快照持久化(RDB)Redis可以通过创建快照获取内存中数据的副本,在创建快照副本后,可以对快照备份,可以将快照复制到其他服务器从而创建具有相同数据的服务器副本(Redis主从结构),还可以将快照留在原地以便重启服务器的时候使用2.AOF持久化与快照持久化相比,AOF 持久化的实时性更好,开启 AOF 持久化后每执行一条会更改 Redis 中的数据的命令,Redis 就会将该命令写入到内存缓存中,然后再根据appendfsync配置来决定何时将其同步到硬盘中的 AOF 文件。为了兼顾数据..
原创
发布博客 2022.03.02 ·
215 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis内存淘汰

volatile-lru(least recently used):从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰 volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰allkeys-lru(least recently used):当内存不足以容纳新写入数据时,
原创
发布博客 2022.03.02 ·
73 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

过期数据删除策略

1.惰性删除:只会在取出key的时候才对数据进行过期检查,对CPU友好2.定期删除:每隔一段时间抽取一批key执行删除过期key操作定期删除对内存更加友好,惰性删除对 CPU 更加友好。两者各有千秋,所以 Redis 采用的是定期删除+惰性删除...
原创
发布博客 2022.03.02 ·
1401 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

页面置换算法

地址映射过程中,若在页面中发现所要访问的页面不在内存中,则发生缺页中断 。缺页中断就是要访问的页不在主存,需要操作系统将其调入主存后再进行访问。OPT 页面置换算法(最佳页面置换算法):最佳(Optimal, OPT)置换算法所选择的被淘汰页面将是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。但由于人们目前无法预知进程在内存下的若千页面中哪个是未来最长时间内不再被访问的,因而该算法无法实现。一般作为衡量其他置换算法的方法。 FIFO页面置换算法(先进先出页面置换算.
原创
发布博客 2022.03.02 ·
665 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

局部性原理

局部性原理是虚拟内存技术的基础,正是因为程序运行具有局部性原理,才可以只装入部分程序到内存就开始运行。局部性原理表现在以下两个方面:时间局部性:如果程序中的某条指令一旦执行,不久以后该指令可能再次执行;如果某数据被访问过,不久以后该数据可能再次被访问。产生时间局部性的典型原因,是由于在程序中存在着大量的循环操作。 空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,这是因为指令通常是顺序存放、顺序执行的,数据也一
原创
发布博客 2022.03.02 ·
976 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

虚拟内存的实现方式

通过虚拟内存可以让程序拥有超过系统物理内存大小的可用内存空间。虚拟内存为每个进程提供了一个一致的、私有的地址空间,它让每个进程产生了一种自己在独享主存的错觉(每个进程拥有一片连续完整的内存空间)。这样会更加有效地管理内存并减少出错。...
原创
发布博客 2022.03.02 ·
1363 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

分页和分段的异同

同:分页机制和分段机制都是为了提高内存利用率,减少内存碎片。页和段都是离散存储的,所以两者都是离散分配内存的方式。但是,每个页和段中的内存是连续的。异:页的大小是固定的,由操作系统决定;而段的大小不固定,取决于当前运行的程序。 分页为了满足操作系统内存管理的需求,而段是逻辑信息的单位,为了更好的满足用户需要。...
原创
发布博客 2022.02.16 ·
1337 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

内存管理

内存管理主要是做什么:操作系统的内存管理主要负责内存的分配与回收(malloc 函数:申请内存,free 函数:释放内存),地址转换也就是将逻辑地址转换成相应的物理地址等功能。内存管理机制:连续分配管理方式(为一个用户程序分配一个连续的内存空间):块式管理:将内存分为几个固定大小的块,每个块中只包含一个进程。如果程序运行需要内存的话,操作系统就分配给它一块,如果程序运行只需要很小的空间的话,分配的这块内存很大一部分几乎被浪费了。这些在每个块中未被利用的空间,我们称之为碎片。非连续分配管理方
原创
发布博客 2022.02.16 ·
220 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

进程调度算法

为了确定首先执行哪个进程以及最后执行哪个进程以实现最大 CPU 利用率,采用进程调度算法:1.先到先服务(FCFS)调度算法: 从就绪队列中选择一个最先进入该队列的进程为之分配资源,使它立即执行并一直执行到完成或发生某事件而被阻塞放弃占用 CPU 时再重新调度。2.短作业优先(SJF)的调度算法: 从就绪队列中选出一个估计运行时间最短的进程为之分配资源,使它立即执行并一直执行到完成或发生某事件而被阻塞放弃占用 CPU 时再重新调度。3.时间片轮转调度算法: 每个进程被分配一个时间段,称作它的时间
原创
发布博客 2022.02.16 ·
281 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

线程同步方式

线程同步是两个或多个共享关键资源的线程的并发执行。应该同步线程以避免关键的资源使用冲突。操作系统一般有下面三种线程同步的方式:互斥量:采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。比如 Java 中的 synchronized 关键词和各种 Lock 都是这种机制。 信号量:它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量。 事件:通过通知操作的方式来保持多线程同步,还可以方便的实现多
原创
发布博客 2022.02.16 ·
111 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

进程间的通信方式

原文地址:JavaGuide (gitee.io)1.匿名管道:用于具有亲缘关系的父子进程间或者兄弟进程之间的通信。2.有名管道:匿名管道由于没有名字,只能用于亲缘关系的进程间通信。为了克服这个缺点,提出了有名管道。有名管道严格遵循**先进先出(first in first out)**。有名管道以磁盘文件的方式存在,可以实现本机任意两个进程通信。3.信号:信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。4.消息队列:消息队列是消息的链表,具有特定的格式,存放在内存中并由消息
原创
发布博客 2022.02.16 ·
123 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

系统调用

根据进程访问资源的特点,我们可以把进程在系统上的运行分为两个级别:用户态: 用户态运行的进程可以直接读取用户程序的数据。 系统态:可以简单的理解为系统态运行的进程或程序几乎可以访问计算机的任何资源,不受限制。我们运行的程序基本都是运行在用户态,但是与系统态级别的资源有关的操作(如文件管理、进程控制、内存管理等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。这些系统调用按功能大致可分为如下几类:设备管理。完成设备的请求或释放,以及设备启动等功能。 文件管理。完成文件的
原创
发布博客 2022.02.16 ·
91 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

什么是操作系统

操作系统是管理计算机硬件与软件资源的程序 操作系统本质上是一个运行在计算机上的软件程序 ,用于管理计算机硬件和软件资源。举例:运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件。 操作系统存在屏蔽了硬件层的复杂性。操作系统就像是硬件使用的负责人,统筹着各种相关事项。 操作系统的内核是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。...
原创
发布博客 2022.02.16 ·
415 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

JVM参数设置

#常用的设置-Xms:初始堆大小,JVM 启动的时候,给定堆空间大小。-Xmx:最大堆大小,JVM 运行过程中,如果初始堆空间不足的时候,最大可以扩展到多少。-Xmn:设置堆中年轻代大小。整个堆大小=年轻代大小+年老代大小+持久代大小。-XX:NewSize=n 设置年轻代初始化大小大小-XX:MaxNewSize=n 设置年轻代最大值-XX:NewRatio=n 设置年轻代和年老代的比值。如: -XX:NewRatio=3,表示年轻代与年老代比值为 1:3,年轻代占整个年轻代+年老
原创
发布博客 2022.02.16 ·
325 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多