摘要:
SQL是数据库操作的的核心语言,语句主要有ddl和dml等。crud的dml语句都会纪录日志mysql数据库中核心搜索引擎MyISAM与InnoDB 底层结构为b+树 一、B+Tree索引和Hash索引 Hash索引结构的特殊性,检索效率非常高,索引的检索可以一次定位 B+树索引需要从根节点到枝节点 阅读全文
摘要:
在Mysql中,有两大常用的存储引擎MyisAm和Innodb,聚集索引和非聚集索引用的是B+树索引InnoDb使用的是聚集索引,Myisam使用的是非聚集索引也叫非聚簇索引 一、聚集索引也叫聚簇索引 1、聚集索引的缺点是修改时需要保持表中记录和索引的顺序需要一致,在插入新记录的时候就会对数据也重新 阅读全文
摘要:
Redis 是一个基于内存的高性能key-value数据库Redis为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘,所以Redis具有快速和数据持久化的特征,如果数据放在内存中 磁盘I/O速度为严重影响redis的性能Redis利用队列技术将并发访问变为串行访问,消除了传统 阅读全文
摘要:
CAP理论: Consistency,一致性:多个操作同时生效,不会出现部分生效的情况 Availability,可用性:客户端的每个请求在服务端能够正确被响应 Partition tolerance,分区容错性:分区中部分节点挂了不会影响整体服务可用性 分区容错性是一个分布式系统最基本的要求,因此 阅读全文
摘要:
一、HashMap 是不是线程安全? 1 hashmap的put方法调用addEntry()方法,假如A线程和B线程同时对同一个数组位置调用addEntry,两个线程会同一时间片同时得到现在的头结点,然后A写入新的头结点之后,B也写入新的头结点,那B的写入操作就会覆盖A的写入操作造成A的写入操作丢失 阅读全文
摘要:
三次握手,四次挥手,为什么要四次挥手(确保数据能够完整传输,主动方和被动方): TCP连接建立——使用三次握手建立连接1、客户端发送请求【寻址请求】(syn)2、服务器端收到报文请求,回应客户端【确认请求】(syn+ack)3、客户端收到服务端的报文进行回应。【连接请求】三次握手完成,TCP客户端和 阅读全文
摘要:
Java内存模型(Java Memory Model)就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能保证效果一致的机制及规范。 JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内用于存储线程私有的数据,而Java 阅读全文
摘要:
一、staitc修饰函数的局部变量: 特点:有默认值0,只执行一次,运行一开始就开辟了内存,内存放在全局 (唯一) staitc修饰全局方法和变量: 特点:只能在本源文件使用 可以通过类名.方法名/变量名 直接引用,而不需要new出一个类来(不依赖于类对象的存在而存在,要进行外置声明) 二、fina 阅读全文
摘要:
线程池的主要流程1、获取线程池状态,线程池状态正确,执行2 线程池状态不正确返回false。2、判断线程池中数目和传入的要求是否一致。不一致返回false,一致执行33、CAS增加线程池的线程数(有个记录线程数的变量)。成功执行4,不成功执行14、获取线程池的锁,创建一个worker(也是线程)。5 阅读全文
摘要:
二叉查找树(BST)具备什么特性呢?1.左子树上所有结点的值均小于或等于它的根结点的值。2.右子树上所有结点的值均大于或等于它的根结点的值。3.左、右子树也分别为二叉排序树。查找结点里面的值 的方式就是二分查找的思想 查找次数就是树的高度 二叉查找树可以任意地构造 向一方倾斜的二叉树是不平衡的,查询 阅读全文