《重构》笔记 发表于 2020-01-10 | 分类于 code 重构的原则 如果没有重构,程序的内部设计(或者叫架构)会逐渐腐败变质。 当人们只为短期的目的而修改代码时,他们经常没有完全理解架构的整体设计,于是代码逐渐失去了自己的结构。 经常性的重构有助于代码维持自己该有的形态。 阅读全文 »
MySQL数据库RR隔离级别下的死锁问题处理 发表于 2019-10-15 | 分类于 数据库 由于是在写公司需求时遇到的死锁问题,故不便透露过多信息,仅给出相关场景描述 场景描述12345begin;index idx_userId_value (userId, value);select * from user_table where userId = 'u2' for update ... 阅读全文 »
emoji在Java中如何处理 发表于 2019-08-19 | 分类于 Java emoji 字符串在 Java 中被切分?12str="😂😂😂😂";System.out.println(str.substring(0,str.length()-1)); 😂😂😂? 打印结果里最后一个字符并不是问号,而是乱码。 怎么能解决由切分emoji引起的乱码问题?Strin ... 阅读全文 »
技术播报-2019-07-19-TiDB在知乎的应用和wsl 发表于 2019-07-19 | 分类于 数据库 TiDB在知乎万亿量级业务数据下的实践和挑战非原创。本文根据孙晓光老师在 TiDB TechDay 2019 北京站上的演讲整理。 业务场景 业务特点 可用性要求高 个性化首页推送,是最重要的流量分发渠道 写入量大 峰值每秒写入40K+行记录,日新增记录金30亿条 历史数据“长期”保存 已读历史 ... 阅读全文 »
极客时间-数据结构与算法之美-分享会 发表于 2019-04-16 | 分类于 数据结构 二叉树(第23节~29节)非原创。本文来自王争老师在Geektime的《数据结构与算法之美》专栏。 二叉树的存储方式: 链式存储: 遍历方式:左右子节点 数组存储: 遍历方式:节点X存储在数组中的下标为i,那么它的左子节点的存储下标为2 i,右子节点的下标为2 i + 1,下标i / 2位置存 ... 阅读全文 »
剑指Offer题解 发表于 2019-02-18 | 分类于 Algorithms 数组中重复的数字 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 思路: 哈 ... 阅读全文 »
对G1算法和G1垃圾回收器的理解 发表于 2019-01-06 | 分类于 JVM G1(Garbage-First )垃圾回收算法,HotspotVM的四种GC算法之一。G1垃圾回收器启动参数-XX:+UseG1GC,Java 9开始被作为默认垃圾回收器。这里基于读者已经了解其他三种GC算法,我作为一个blog搬运工(关于G1算法的优秀blog请看参考资料),谈一下对G1算法的总 ... 阅读全文 »
方法区的OOM 发表于 2018-12-20 | 分类于 JVM 一、JDK1.6 64bit下方法区的OOM今天跑了一个项目(JDK1.6,Windows 64bit),然后抛出了这样一个异常 java.lang.OutOfMemoryError: PermGen space 2018-09-19 09:18:23 JRebel: ERROR Failed to ... 阅读全文 »
InnoDB如何保证事务四大特性 发表于 2018-12-20 | 分类于 数据库 事务的四大特性 原子性(Atomicity):原子性指整个数据库事务是不可分割的工作单位。事务中所有的数据库操作,要么全部提交成功,要么全部失败回滚。 一致性(Consistency):数据库总是从一个一致性的状态转换到另一个一致性的状态。 隔离性(Isolation):事务的隔离性要求每个读 ... 阅读全文 »
InnoDB索引详解 发表于 2018-12-20 | 分类于 数据库 B树(Balance Tree)本质属于一颗平衡树。 B+树是基于B树和叶子节点顺序访问指针进行实现,它具有B树的平衡性,并且通过顺序访问指针来提高区间查询的性能。 为什么使用B+树?(1)B+树比起二叉树的优势 索引以索引文件的形式存储的磁盘上,每次读取节点就会进行一次磁盘IO操作,获取一 ... 阅读全文 »