B-Tree 和 B+Tree


概要 B+Tree 索引是 B+Tree 在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+Tree 中的 B 代表平衡(balance),而不是二叉(binary),因为 B+Tree 是从最早的平衡二叉树演化而来的。在讲 B+Tree 之前必须先了解二叉查找树、平衡二叉树(A

AC 自动机


字典树(Tire 树) Trie 树是一种多叉树的结构,每个节点保存一个字符,一条路径表示一个字符串。 下图表示了字符串: him 、 her 、 cat 、 no 、 nova 构成的 Trie 树。 从图中可以看出 Trie 树包含以下性质: 根节点不包含字符,其他节点包含一个字符。

MinIO 基本使用


安装 Docker 部署 MinIO 拉取镜像 docker pull minio/minio --platform linux/amd64 创建挂载目录 mkdir /Users/clear/docker/data/minio/config mkdir /Users/clear/docker/da

Java 堆

Java 

Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。 堆是垃圾收集器管理的主要区域,又称为“GC 堆”,可以说是 Java 虚拟机管理的内存中最大的一块。

Java 内存区域

Java 

很多人会误以为 Java 内存区域和内存模型是同一个东西,其实并不是。 Java 内存区域是指 JVM 运行时将数据分区域存储 ,简单的说就是不同的数据放在不同的地方。通常又叫 运行时数据区域。 Java 内存模型(JMM)定义了程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变

Java 动态代理

Java 

静态代理和动态代理 代理分为静态代理和动态代理,这里写两个小的 demo,动态代理采用的就是 JDK 代理。 举个例子就是现在一个班上的学生需要交作业,现在由班长代理交作业,那么班长就是代理,学生就是被代理的对象。 静态代理 首先,我们创建一个 Person 接口。这个接口就是学生(被代理类),和班

transient 关键字

Java 

1. 概要 在 Java 中,transient 关键字用于标记一个成员变量,指示 Java 序列化机制在序列化对象时忽略该特定变量。这意味着当对象被转换为字节流(例如,保存到文件或通过网络传输)时,带有 transient 关键字的变量值不会被包括进去。当这个对象被反序列化(即从字节流恢复成对象)

Oracle 数据库权限问题


当前用户访问非本用户模式 如果当前用户查询自己用户模式下的对象时,是不需要额外授权的,但是如果要查询其他模式下的对象信息,比如表,就需要 select any table 权限 如果需要查询一些系统表信息,例如 dba_objects,就需要 select_catalog_role 权限 同样的,如

Git/Gerrit 提示 Permission denied (publickey).)


原因 OpenSSH 从 8.8 版本开始由于安全原因开始弃用了 rsa 加密的密钥。 因为 OpenSSH 认为 rsa 破解成本太小了,有风险就给禁用了。 你可以通过命令: ssh -v [git服务器IP地址] 去查看 Gerrit 服务器的 OpenSSH 的版本号。

git 代码提交规范 fix、feat 等命令的含义


feat:该提交用于添加新功能 fix:该提交用于修复错误或问题 docs:该提交用于更新文档 style:该提交用于代码格式或结构调整 refactor:该提交用于代码重构,对已有代码进行优化和改进,不添加新功能或修复错误 chore:该提交用于构建过程或辅助工具的变动,包括更新依赖项、配置文件更