当前位置: 首页 > news >正文

计算机基础知识复习1.4

数据库事务

#开启一个事务
start transaction 
#执行SQL语句
SQL1 SQL2 ..
#提交事务
commit

类加载器

启动类加载器:负责加载Java的核心库  用C++编写,是JVM的一部分,启动类加载器无法被Java程序直接引用

扩展类加载器:是Java语言实现的,继承自ClassLoader类,负责加载Java扩展目录下的jar包和类库。扩展类加载器由启动类加载器加载,并且父加载器就是启动类加载器

应用程序类加载器:是Java语言实现的,负责加载用户类路径上的指定类库,是我们编写Java程序默认使用的类加载器

自定义类加载器:开发者可以根据需求定制类的加载方式,比如网络加载class文件,数据库,加密的文件中加载类

http是一个无状态协议,意味每个请求都是独立的,每一次请求点到为止不会造成不必要的连接占用,缺点在于每次请求会传输大量重复的内容信息

503 表示服务器当前很忙,暂时无法响应客户端,网络服务正忙,请稍后重试

301 表示永久重定向 说明请求的资源已经不存在了,需要改用新的url再次访问

302 表示临时重定向 说明请求的资源还在,但暂时需要用另一个url来访问

索引失效

对索引使用左右模糊匹配,使用左模糊匹配

对索引使用函数

对索引隐式类型转换

联合索引使用非最左匹配

where子句的or

磁盘调度算法

先来先服务

最短寻道时间优先

扫描算法  循环扫描算法:磁头移动到磁盘最始端或最末端才开始调换方向

LOOK与C-LOOK算法:磁头移动到最远的请求位置,然后立即反向移动

边缘触发和水平触发

 当被监控的socket描述符上有可读事件发生时,服务端只会从epoll_wait中苏醒一次,即使进程没有调用read函数从内核读取数据,依然只苏醒一次,因此我们程序要保证一次性将内核缓冲区的数据读完

使用水平触发模式时,当被监控的socket上有可读事件发生时,服务端不断从epoll_wait中苏醒,直到内核缓冲区数据被read函数读完才结束。

使用水平触发,当内核通知文件描述符可读写时,接下来还可以继续去检测他的状态,看他是否依然可读或可写,所以在收到通知后,没必要一次执行尽可能多的读写操作

使用边缘触发,I/O事件发生时只会通知一次,而且我们不知道到底能读写多少数据,所以在收到通知后应尽可能地读写数据,以免错失读写的机会。因此,我们会循环从文件描述符读写数据,那么如果文件描述符是阻塞的,没有数据可读写的,进程会阻塞在读写函数里,程序没办法继续执行

接口和抽象类区别

实现接口的关键字为implements,继承抽象类的关键字为extends,一个类可以实现多个接口,但一个类只能继承一个抽象类,接口可以间接实现多继承

接口只能有方法的定义,不能有方法的实现,抽象类可以有定义与实现

接口成员变量默认为public static final 必须赋初值,不能被修改,所有成员方法都是public ,抽象类中成员变量默认default 可在子类中被重新定义,也可被重新赋值

抽象类可以包含实例变量和静态变量,而接口只能包含常量

使用包装类:例如List,Set,Map只能存储对象,不能直接存储基本数据类型。包装类提供了许多方法,例如基本类型转换,比较,操作。对null值支持。

undo log 回滚日志:是InnoDB存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和MVCC 

redo log 重做日志:是InnoDB 存储引擎层生成的日志,实现了事务中的持久性,主要用于掉电等故障恢复

binlog 是Server层生成的日志,主要用于数据备份和主从复制

进程间通信方式

管道:管道传输数据是单向的,内核里的一串缓存

消息队列:保存在内核中的消息链表,在发送数据时,会分成一个一个独立的数据单元,也就是消息体

共享内存:拿出一块虚拟地址空间来,映射到相同的物理内存中

信号量:实现进程间的互斥与同步,而不是用于缓存进程间通信的数据

MyBatis一级,二级缓存作用

一级缓存:基于PerpetualCache的HashMap本地缓存,其存储作用域为Session,当Session flush或close之后,该Session中的所有Cache就将清空,默认打开一级缓存

二级缓存:默认采用PerpetualCache,HashMap存储,不同在于其存储作用域为Mapper(Namespace)。默认不打开二级缓存,要开启二级缓存,使用二级缓存属性类需要实现Serializable序列化接口,可在他的映射文件中配置<cache/>

什么是中断

CPU停下当前的工作任务,去处理其他事情,处理完后回来继续执行刚才的任务

发生中断:当外部设备或软件程序需要处理器的注意或响应时,会发出中断信号,处理器在接收到中断信号后,会停止当前执行的指令,保存当前执行现场,并跳转到中断处理程序执行

中断响应:处理器接收到中断信号后,会根据中断向量表找到对应的中断处理程序的入口地址。处理器会保存当前执行现场(如程序计数器,寄存器状态) 以便在中断处理完成后能够恢复执行

中断处理:处理器跳转到中断处理程序的入口地址开始执行中断处理程序,中断处理程序会根据中断类型进行相应的处理,可能涉及保存现场,处理中断事件,执行特定任务

范式

第一范式(1NF):要求数据库表的每一列都是不可分割的原子数据项

第二范式(2NF):非码属性必须完全依赖于候选码(消除非主属性对主码的部分函数依赖)

第三范式(3NF):任何非主属性不依赖于其他非主属性(消除传递依赖)

半连接队列和全连接队列

服务端收到客户端发起的SYN请求后,内核会把该连接存储到半连接队列,并向客户端响应SYN+ACK,接着客户端返回ACK,服务端收到第三次握手的ACK后,内核会把连接从半连接队列移除,然后创建新的完全的连接,并将其添加到accept队列,等待进程调用accept函数时把连接取出来

全局锁:通过flush tables with read lock语句会将整个数据库就处于只读状态

表级锁:通过lock tables 语句可以对表加表锁

记录锁:锁住一条记录,记录锁是有S锁和X锁之分的,满足读写互斥,写写互斥

http://www.lryc.cn/news/516058.html

相关文章:

  • SpringMVC(三)请求
  • Node.js应用程序遇到了内存溢出的问题
  • 如何构建云原生时空大数据平台?
  • 二极管钳位电路分享
  • 腾讯云智能结构化 OCR:驱动多行业数字化转型的核心引擎
  • 19.3、Unix Linux安全分析与防护
  • JVM对象内存结构
  • 联邦学习和大模型相结合: 数据隐私,提升训练效率,架构优化
  • 命令别名和命令历史
  • 打造三甲医院人工智能矩阵新引擎(二):医学影像大模型篇--“火眼金睛”TransUNet
  • Scade pragma: separate_io
  • IWOA-GRU和GRU时间序列预测(改进的鲸鱼算法优化门控循环单元)
  • “知识图谱AI教学辅助系统:点亮智慧学习的新灯塔
  • 产品 防尘防水IP等级 划分与实验方法
  • 【微服务】1、引入;注册中心;OpenFeign
  • 01、Docker学习,第一天:简单入门与安装
  • C++STL中iomanip的使用与细节
  • 3.C语言变量的基础概念与使用
  • Go语言中的逃逸分析:深入浅出
  • 【FlutterDart】 拖动改变 widget 的窗口尺寸大小GestureDetector~简单实现(10 /100)
  • 【论文笔记】LongLoRA: Efficient Fine-tuning of Long-Context Large Language Models
  • 数据挖掘——朴素贝叶斯分类
  • unity中的UI系统---GUI
  • 鸿蒙Flutter实战:15-Flutter引擎Impeller鸿蒙化、性能优化与未来
  • C语言冒泡排序教程简介
  • Fabric链码部署测试
  • k620老显卡,装cuda.等。
  • 网站常用功能模块-鉴权
  • 直接插入排序、折半插入排序、2路插入排序、希尔排序
  • FQ-GAN代码解析