HTTPS握手的五个阶段


客户端向服务器发送支持的SSL/TSL的协议版本号,以及客户端支持的加密方法,和一个客户端生成的随机数服务器确认协议版本和加密方法,向客户端发送一个由服务器生成的随机数,以及数字证书客户端验证证书是否有效,有效则从证书中取出公钥,生成一个随机数,然后用公钥加密这个随机数,发给服务器服务器用私钥解密,

Innodb缓存池


在 MySQL 中,缓存池(Buffer Pool) 是 MySQL 数据库管理系统为了提高查询性能和降低磁盘访问次数而使用的重要内存缓存机制。缓存池的主要功能是尽可能多地缓存数据,以减少对硬盘的直接读取,从而提高数据库的整体性能。在 MySQL 中,缓存池的管理方式主要取决于所使用的存储引擎,不同

算法的时间与空间复杂度

算法 

算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢?主要还是从算法所占用的「时间」和「空间」两个维度去考量。时间维度:是指执行当前算法所

在 Java 中生成随机密码

Java 

1.使用 SecureRandom.nextInt(…) 和 StringBuilder一个简单的解决方案是从定义的 ASCII 范围中随机选择字符,并从中构造一个所需长度的字符串。要构造随机字母数字密码,ASCII 范围应由数字、大写和小写字符组成。import java.security.Sec

InnoDB使用B+树实现索引的原因


本文是对InnoDB索引和数据结构的更详细的补充。1、表空间在 MySQL 中,所有的数据都被存储在一个空间内,称之为表空间,表空间内部又可以分为段(segment)、区(extent)、页(page)、行(row),其逻辑结构如下图:1.1 段(segment)表空间是由不同的段组成的,常见的段有

JDK为什么选择管程(Monitor)

Java 

管程和信号量都能解决并发问题,它们是等价的。所谓等价指的是用管程能够实现信号量,也能用信号量实现管程。但是管程在信号量所实现功能的基础上提供条件同步,使用更容易,所以 Java 采用的是管程技术.