今天了解下听说了好久,但是没怎么用过的东西。
面试经验分享
历时近两个月的面试终于告一段落,终于有时间整理下自己这次的换工作心得,分享给大家。
MySQL中常见的几种日志
MySQL 中有六种日志文件,分别是:
重做日志(redo log)、回滚日志(undo log)、二进制日志(binlog)、错误日志(errorlog)、慢查询日志(slow query log)、一般查询日志(general log),中继日志(relay log)。
之前没认真学习过,上次去面试被问死了,痛定思痛整理下相关的知识。
分布式协议Paxos、Raft和ZAB
首先得放在开头,分布式系统的一致性协议一直是分布式系统的难题,本人没有阅读过 Lamport 老人家的论文原文(估计直接读也未必读的懂),以下所有内容来自网络博文、书籍和网站的整理,加上自己的理解润色。水平有限不敢说全都正确,仅供参考。
常见的架构设计面试题
整理了一些常见的架构设计面试题,主要记录关键点,具体细节就不详细叙述了,案例慢慢补充。目前想起以下问题:
- 秒杀系统
- 短链接生成
- 高并发的红包系统
- 分布式ID生成
- 分布式限流
- 分布式定时任务
- 新浪微博怎么推送微博
- 大文件有限内存排序
缓存系统常见问题总结
关于缓存的知识太多了,先整理一点,慢慢补充吧。
Java高级特性:泛型、反射、动态代理和注解
Java 高级特性有挺多,但是这几个一直没搞太通透,只会简单用用,为什么这么设计,有没有什么有意思的玩法都没探究过,今天就来整理一下。
Minio+Nginx搭建图床一键上传博客图片
SpringBoot中的事务
SpringBoot 是怎么处理事务?事务注解怎么用?有哪些需要注意的问题?我们自己动手一步一步的从实验中学习。
Java并发包使用指南
我们常说的“并发包”指的是java.util.concurrent
这个包,后面简称 J.U.C,里面包含大量多线程和并发编程的工具。J.U.C 包是 JDK 1.5 版本引入,由 Doug Lea 和众多其他大神合力完成,包含大量对并发编程的思考精华,仔细观摩思考他们的设计思路,对于我们学习多线程和并发编程有非常大的帮助。本文所有内容基于 JDK11。
AQS原理解析
AbstractQueuedSynchronizer
,可以叫做抽象队列同步器,可以说是 J.U.C 并发包里大多数工具的基石,并发包里的几个工具类,还有包括之前已经分析过得ReentrantLock
统统是基于该同步器所设立的框架。 就让我们看看这个东西到底有什么精巧的设计。
Java中的各种集合类
Java中的集合主要分为以下集合类:Map
、List
、Set
、Queue
和concurrent
包里面供多线程环境下使用的以上几种集合类。
Linux文本处理三剑客grep、awk和sed
awk、grep、sed 是 Linux 操作文本的三大利器,合称文本三剑客,也是必须掌握的 Linux 命令之一。三者的功能都是处理文本,但侧重点各不相同,其中属 awk 功能最强大,但也最复杂。grep 更适合单纯的查找或匹配文本,sed 更适合编辑匹配到的文本,awk 更适合格式化文本,对文本进行较复杂格式处理。
23种设计模式长文总结
一次性将设计模式整理清楚,包括 23 种设计模式的优劣势、使用场景、示例以及 JDK 和常见框架中的使用方法。
HTTPS为什么安全?
知道 HTTPS,也用过 HTTPS,但是一直不知道原理,这次探究一下。
关于Redis应该知道的
NoSQL 几乎是必备的知识,其中 Redis 大概是适用范围最广的非关系型数据库,应该也是我个人接触比较早,了解比较多的,因此整理下 Redis 的相关知识点。先从比较基础的内容整理开始,后续更多复杂和深入的内容考虑慢慢补充或者再开专门的文章来整理。
Java多线程
Java 多线程相关的基础知识。
InnoDB和MyISAM区别和联系
从别人博客抄来的 MySQL 中 InnoDB 引擎与 MyISAM 引擎的区别与联系。
ConcurrentHashMap使用和原理
ConcurrentHashMap
是在 JDK 1.5 时,J.U.C 引入的一个同步集合工具类,顾名思义,这是一个线程安全的 HashMap。不同版本的 ConcurrentHashMap,内部实现机制千差万别,本节所有的讨论基于 JDK 1.8。
MySQL中的事务
本文主要摘抄自《MySQL技术内幕(InnoDB存储引擎)第二版》,少部分来自网络博客和自己补充。注意,该书内容是基于MySQL 5.6 及更早的版本,具体的实现方式有可能发生了改变,有些内容我做了注释和补充,但是不保证百分百的完整和正确。