ReZero's Utopia.

ReZero's Utopia.

Everything is permitted.

sql打印的一种暴力解决方式
Sql log 失效以 MyBatis 为例,因为其他辅助框架的不同,或者某些条件限制,导致日志按照官网配置后可能出现仍然无法打印的情况,这时候可能就会想到写sql拦截器自己拦截生成sql填充参数,但可能需要一定的开发时间。 本文直接挑明一种暴力打印的方式,不清楚是否广泛可用,但有兴趣的老哥们可以试一下。 Java 类加载优先级会按照 classpath 的顺序去加载,遇到 全限定名相同的类 时只会加载第一个,而 classpath 目录的默认值是 ., 也就是当前目录。 换句话说当项目跑起来的时候会优先加载自己写的 class, 这是暴力方法的基础。 Sql的执行方法以 MyBati...
Mysql 45 讲
主键索引的叶子节点存的是整行数据。在 InnoDB 里,主键索引也被称为聚簇索引 (clustered index)。 非主键索引的叶子节点内容是主键的值。在 InnoDB 里,非主键索引也被称为二级索引 (secondary index)。 自增主键的插入数据模式,正符合了我们前面提到的递增插入的场景。每次插入 一条新记录,都是追加操作,都不涉及到挪动其他记录,也不会触发叶子节点的分裂 有没有什么场景适合用业务字段直接做主键的呢?还是有的。比如,有些业务的场景需求是这样的: 只有一个索引; 该索引必须是唯一索引。 你一定看出来了,这就是典型的 KV 场景 我在上一篇文章末尾给你留...
elastic-search 笔记
A good place to start is with batches of 1,000 to 5,000 documents and a total payload between 5MB and 15MB. hits._score - the document’s relevance score (not applicable when using match_all) Each search request is self-contained: Elasticsearch does not maintain any state information across req...
Linux-disk
File x: get in dir. r: browse dir. File Special Authorization SUID chmod u+s bin For binary file Equal: (tempUser) execute file SGID chmod g+s dir For binary file Equal: (tempGroup) execute file IF u create a file, the file will be belong to u, but not for sgid, it belongs to sgid di...
CSAPP
Not be the real thing digit might be overfolw float will not be overflow, but could lost precision Memory RAM: Random am BitExclusive-Or(XOR) A ^ B Union | //并 Complement ~ //补 Intersection & //交 Symmetric difference ^ //差 IntegerUnsigned: $$ B2U(X)=\sum_{i=0}^{w-1}x_i*2^i $$ Signed: $$...
OQL
JVM Object Query Language参考链接 概述简单说就是 java heap 信息的查询语言。原本的小工具 hat 其实已经够用了,但是为了增加点灵活性,所以引入了 oql 方便查询。 123select <JavaScript expression to select> [ from [instanceof] <class name> <identifier> [ where <JavaScript boolean expression to filter> ] ] 上面的表达式大致介绍下:...
Think More
Think Morehttps://time.geekbang.org/column/intro/48 错误码的处理常见设计 C 的 errno 是记录系统的最后一次错误代码 错误具有歧义性,比如 0 不能区分是不是真的出错还是的确返回值就是 0 错误不够显式,常常忘记检查 Win 的 HRESULT 错误变成了出参,导致接口变得不够纯净 仍然错误不够显式 Go 的处理:函数的返回值附带一个 error 作为异常返回,当出现异常时其不为 nil 是接口类型,只包含了一个字符串做描述,因此可以自己做实现 Go 的设计者觉得 try/catch 机制的使用太泛滥了,而且从底层...
Thread pool
https://tech.meituan.com/2020/04/02/java-pooling-pratice-in-meituan.html 基本利益 统一管理IT资源,包括服务器、存储、和网络资源等等。通过共享资源,使用户在低投入中获益。 内存池(Memory Pooling):预先申请内存,提升申请内存速度,减少内存碎片。 连接池(Connection Pooling):预先申请数据库连接,提升申请连接的速度,降低系统的开销。 实例池(Object Pooling):循环使用对象,减少资源在初始化和释放时的昂贵损耗。 核心实现总体设计 生命周期管理 任务调度 ...
K8s
docker基础理解 容器本身没有价值,有价值的是“容器编排” 容器技术的核心功能,就是通过约束和修改进程的动态表现,从而为其创造出一个“边界“ 对于 Docker 等大多数 Linux 容器来说,Cgroups 技术是用来制造约束的主要手段,而Namespace 技术则是用来修改进程视图的主要方法。 int pid = clone(main_function, stack_size, CLONE_NEWPID | SIGCHLD, NULL); 这时,新创建的这个进程将会“看到”一个全新的进程空间,在这个进程空间里,它的 PID是 1。之所以说“看到”,是因为这只是一个“障眼法...
Thread
线程生命周期happens-before 程序顺序规则:一个线程中的每一个操作,happens-before于该线程中的任意后续操作。 监视器锁规则:对一个锁的解锁,happens-before于随后对这个锁的加锁。 volatile变量规则:对一个volatile域的写,happens-before于任意后续对这个volatile域的读。 传递性:如果A happens-before B,且B happens-before C,那么A happens-before C。 start规则:如果线程A执行操作ThreadB.start()启动线程B,那么A线程的ThreadB.start(...
avatar
ReZero
大屁水饺的理想国.