算法的时间与空间复杂度

算法 

算法(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 采用的是管程技术.

MyBatis XML配置

spring 

XML 映射配置文件MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息。属性(properties)这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传

Spring动态修改配置值

spring 

在一些场景下需要在应用启动或者运行过程中,动态的修改.properties或者是.yaml中的某个属性值。如果有使用过类似携程的Apollo配置中心应该会有所体会。1. 分析在Springboot的启动过程中,将所有的应用参数等环境变量属性值都解析到类ConfigurableEnvironment中