事务 事物事物的概念事物是访问并更新数据库中数据项的一组操作,它们要么都执行,要么都不执行。 可以通过commit提交一个事物,也可以通过rollback来进行回滚 MySQL默认采用自动提交模式。也就是说,如果不显式使用START TRANSACTION语句来开始一个事务,那么每执行一个SQL语句后就会马上执行COMMIT操作。 事物的四大特性ACID 原子性(Atomicity):是指数据库事物是不 2021-02-15 计算机基础 数据库
工厂模式 工厂模式工厂模式分为三种,分别为: 简单工厂模式 工厂方法模式 抽象工厂模式 接下来以pizza店的例子阐述三种模式 简单工厂模式一句话描述:简单工厂模式将对象的创建封装了起来 通过工厂类创建对象,并且根据传入参数决定具体要实例化哪种子类对象的做法,叫简单工厂模式(Simpe Factory Pattern)以下代码描述了产品类,包括一个抽象接口和两个具体类 12345678910111213 2021-02-15 设计模式 设计模式
存储管理 存储管理1.地址空间就像进程的概念创造了一类抽象的CPU以运行程序一样,地址空间为程序创造了一种抽象的内存。地址空间是一个进程可用于寻址内存的一套地址集合。每个进程都有一个自己的地址空间,并且这个地址空间独立于其他进程的地址空间。 即要做到的是:给每个程序一个自己的地址空间,使得一个程序中的地址28所对应的物理地址与另一个程序中的地址28所对应的物理地址不同。 一种为每个进程提供私有地址空间的简单 2021-02-15 计算机基础 操作系统
死锁 死锁1.资源在进程对设备、文件等资源取得了排他性的访问权时,有可能会出现死锁。 资源可以分为如下两类: 可抢占资源:可以从拥有它的进程中抢占而不会产生任何副作用(比如存储器) 不可抢占资源:在不引起相关计算失败的情况下,无法把它从占有它的进程中抢占过来(比如CD刻录机) 考虑这样一种情况:进程A获取了资源1,进程B获取了资源2,每个进程如果都想请求另一个资源就会被阻塞,那么每个进程都无法继续运 2021-02-15 计算机基础 操作系统
索引 索引索引也叫键,是帮助存储引擎快速找到记录的一种数据结构。相当于一个目录的作用。 索引的优点: 加快数据的检索速度 通过创建唯一性索引,保证数据库表中每一行数据的唯一性 索引的缺点: 创建和维护索引需要耗费时间:当对表中数据进行修改时,如果数据有索引,那么索引也需要修改。 占用物存储空间 B+树B+树是一颗搜索树,也是平衡树。在B+树中,所有记录节点都是按照键值的大小顺序存放在同一层的叶子 2021-02-15 计算机基础 数据库
策略模式 策略模式定义策略模式定义了一簇算法,并把它们分别封装起来,让它们之间可以相互替换。此模式让算法的变化独立于使用算法的客户。 实现定义一个算法簇:描述鸭子的不同飞行行为.算法簇包含两个具体的算法(行为):FlyWithWings和FlyNoWay。它们都实现自接口FlyBehavior 123456789101112131415public interface FlyBehavior { 2021-02-15 设计模式 设计模式
网络层 网络层1.概述网络层分为数据平面和控制平面。 数据平面的作用是在一个路由器中,将数据报从一个输入链路转移到一个适当的输出链路,即转发功能(forward) 控制平面的作用是协调一个网络中的每个路由器的转发动作,使得数据报沿着源和目的地主机之间的路由器路径最终进行端到端传送,即路由功能(routing) 链路层交换机和路由器的区别: 链路层交换机基于链路层帧中的字段值做出转发决定,交换机因 2021-02-15 计算机基础 计算机网络
装饰者模式 装饰者模式定义动态地为对象扩展功能。 在扩展功能这一方面,装饰者模式比继承更有弹性 实现实现背景:一家咖啡店有多种饮料(如咖啡、豆浆),还有多种调料可以添加(如Whip、Mocha)。每种饮料都有一个基础价格,加完调料后,价格即为基础价格加上调料价格。要求我们要计算一杯加过调料的饮料的价格。 所有的装饰者和被装饰者都要继承自抽象类Beverage 1234567public static abs 2021-02-15 设计模式 设计模式
锁 锁数据库系统使用锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性。 锁的粒度锁定的数据量越少,发生锁争用的可能就越小,系统的并发程度就越高。但锁的各种操作(获取锁、释放锁、检查锁状态)都会增加系统开销。因此锁的粒度越小,系统开销就越大。因此在选择锁的粒度时,需要在锁开销和并发程度做平衡。 MySQL数据库根据锁的粒度把锁分为表级锁和行级锁: 表级锁:对当前操作的整张表加锁。锁的粒度大 2021-02-15 计算机基础 数据库
Java虚拟机 一、Java内存区域 1.程序计数器程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器。 2.Java虚拟机栈虚拟机栈描述的是Java方法执行的线程内存模型。每个方法被执行的时候,Java虚拟机会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直到执行完成的过程,对应着一个 2021-02-15 编程语言 Java