Blog Archive
2022
2020
2019
- Kafka
- Elasticsearch
- Redis高可用集群搭建
- JVM发生OOM的几种原因
- 序列化
- 内存泄露与内存溢出
- 分布式事务
- 日志打印
- 指定目录,找出前N个最大文件,并输出文件全路径
- Java使用JavaScript调用谷歌翻译
- 如何解决Redis主从数据不一致问题
- Tomcat设置maxPostSize导致Post请求失败
- Redis和Memcached的区别
- Memcached
- Redis分布式锁
- Unsafe
- Druid
- SpringMVC原理分析
- 死磕Java并发之线程池
- 死磕Java并发之CountDownLatch与CyclicBarrier、Semaphore
- 死磕Java并发之LockSupport与Condition
- MyBatis工作原理
- 死磕Java并发之AQS
- 死磕Java并发之阻塞队列
- 设计模式之单例模式
- 死磕Java并发之ThreadLocal
- 死磕Java并发之Volatile
- 死磕Java并发之Synchronized
- LeetCode数据库之分数排名
- 深入理解Java中SPI机制
- Selenium+TestNG自动化测试
2018
- JGit
- 深入理解MySQL的Explain
- Jira
- 死磕Java并发之CAS
- 使用xhtmlrenderer将html转成图片
- 基于Spring可扩展Schema提供自定义配置支持
- 缓存穿透、雪崩、击穿
- 分布式事务之CAP
- 分布式事务之BASE
- IDEA常见问题
- Java动态代理机制详解
- Java8新特性
- MySQL索引原理
- Redis配置文件详解
- Redis常用数据结构
- Redis缓存淘汰机制
- Redis为什么设计成单线程
- 消息队列是如何保证顺序性
- 分布式全局ID生成方案
- MySQL查询优化
- MySQL复制
- 限流之漏桶算法与令牌桶算法
- MySQL日志
- MySQL之binlog的应用场景与原理深度剖析
- MVCC多版本并发控制
- 再谈引用
- MyBatis常用标签
- HTTPS的工作原理和TCP握手机制
- Cookie与Session
- Redis持久化
- Redis主从同步
- Redis简单动态字符串
- Spring循环依赖
- SpringBean生命周期
- Nginx SSL+Tomcat集群,如何获取到https协议
- IO模型
- 微信红包的架构设计
- InnoDB存储引擎中的锁
- 理解事务的4种隔离级别
- LeetCode之验证回文串
- LeetCode之验证回文串
- 虚拟机类加载机制
- 跳跃表
- 剑指offer之链表中环的入口结点
- 剑指offer之表示数值的字符串
- 剑指offer之字符流中第一个不重复的字符
- 剑指offer之从尾到头打印链表
- 剑指offer之正则表达匹配
- 剑指offer之构建乘积数组
- 剑指offer之替换空格
- 剑指offer之数组中重复的数字
- 剑指offer之二维数组的查找
- LeetCode之二叉树最小深度
- LeetCode之二叉树最大深度
- LeetCode之二叉树的层次遍历
- 虚拟机性能监控与故障处理工具
- LeetCode之平衡二叉树
- LeetCode之对称二叉树
- HashMap与Hashtable
- Java中&与&&和|与||运算符
- Title属性值换行
2017
- MySQL事务的实现
- Servlet
- Java内存模型(JMM)
- String与StringBuilder与StringBuffer
- ArrayList与LinkedList
- MySQL三范式与反模式