0%

历时近两个月的面试终于告一段落,终于有时间整理下自己这次的换工作心得,分享给大家。

阅读全文 »

MySQL 中有六种日志文件,分别是:

重做日志(redo log)、回滚日志(undo log)、二进制日志(binlog)、错误日志(errorlog)、慢查询日志(slow query log)、一般查询日志(general log),中继日志(relay log)。

之前没认真学习过,上次去面试被问死了,痛定思痛整理下相关的知识。

阅读全文 »

首先得放在开头,分布式系统的一致性协议一直是分布式系统的难题,本人没有阅读过 Lamport 老人家的论文原文(估计直接读也未必读的懂),以下所有内容来自网络博文、书籍和网站的整理,加上自己的理解润色。水平有限不敢说全都正确,仅供参考。

阅读全文 »

整理了一些常见的架构设计面试题,主要记录关键点,具体细节就不详细叙述了,案例慢慢补充。目前想起以下问题:

  • 秒杀系统
  • 短链接生成
  • 高并发的红包系统
  • 分布式ID生成
  • 分布式限流
  • 分布式定时任务
  • 新浪微博怎么推送微博
  • 大文件有限内存排序
阅读全文 »

SpringBoot 是怎么处理事务?事务注解怎么用?有哪些需要注意的问题?我们自己动手一步一步的从实验中学习。

阅读全文 »

我们常说的“并发包”指的是java.util.concurrent这个包,后面简称 J.U.C,里面包含大量多线程和并发编程的工具。J.U.C 包是 JDK 1.5 版本引入,由 Doug Lea 和众多其他大神合力完成,包含大量对并发编程的思考精华,仔细观摩思考他们的设计思路,对于我们学习多线程和并发编程有非常大的帮助。本文所有内容基于 JDK11。

阅读全文 »

AbstractQueuedSynchronizer,可以叫做抽象队列同步器,可以说是 J.U.C 并发包里大多数工具的基石,并发包里的几个工具类,还有包括之前已经分析过得ReentrantLock统统是基于该同步器所设立的框架。 就让我们看看这个东西到底有什么精巧的设计。

阅读全文 »

Java中的集合主要分为以下集合类:MapListSetQueueconcurrent包里面供多线程环境下使用的以上几种集合类。

阅读全文 »

awk、grep、sed 是 Linux 操作文本的三大利器,合称文本三剑客,也是必须掌握的 Linux 命令之一。三者的功能都是处理文本,但侧重点各不相同,其中属 awk 功能最强大,但也最复杂。grep 更适合单纯的查找或匹配文本,sed 更适合编辑匹配到的文本,awk 更适合格式化文本,对文本进行较复杂格式处理。

阅读全文 »

一次性将设计模式整理清楚,包括 23 种设计模式的优劣势、使用场景、示例以及 JDK 和常见框架中的使用方法。

阅读全文 »

NoSQL 几乎是必备的知识,其中 Redis 大概是适用范围最广的非关系型数据库,应该也是我个人接触比较早,了解比较多的,因此整理下 Redis 的相关知识点。先从比较基础的内容整理开始,后续更多复杂和深入的内容考虑慢慢补充或者再开专门的文章来整理。

阅读全文 »

ConcurrentHashMap是在 JDK 1.5 时,J.U.C 引入的一个同步集合工具类,顾名思义,这是一个线程安全的 HashMap。不同版本的 ConcurrentHashMap,内部实现机制千差万别,本节所有的讨论基于 JDK 1.8。

阅读全文 »

本文主要摘抄自《MySQL技术内幕(InnoDB存储引擎)第二版》,少部分来自网络博客和自己补充。注意,该书内容是基于MySQL 5.6 及更早的版本,具体的实现方式有可能发生了改变,有些内容我做了注释和补充,但是不保证百分百的完整和正确。

阅读全文 »