![主图logo](https://i.loli.net/2018/12/16/5c15d4a435e63.jpg) > **Java核心知识库**:school_satchel::包含集合框架、JVM机制、多线程、SSM框架、MySQL、分布式、微服务、高并发与高可用等。:bookmark: ### :lollipop::lollipop::lollipop:全文持续更新中 ... :recycle::recycle::recycle: ### 零、:rocket::rocket::rocket:数据结构与算法 * [数据结构与算法 (第 01 篇) Java版:常见基础排序算法及复杂度](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/algorithm/BasicSorting.md) * [数据结构与算法 (第 02 篇) Java版:二叉树遍历的n种方法](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/algorithm/BinaryTreeTraversal.md) * [数据结构与算法 (第 03 篇) Java版:二叉树深度](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/algorithm/BinaryTreeDepth.md) * [数据结构与算法 (第 04 篇) Java版:LRU缓存机制](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/algorithm/LRUCache.md) ### 一、:bullettrain_side::railway_car::railway_car::railway_car:集合框架源码分析 * [集合框架 (第 01 篇) 源码分析:Collection 框架总览](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/collection/JavaCollections.md) * [集合框架 (第 02 篇) 源码分析:Map 框架总览](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/collection/JavaMaps.md) * [集合框架 (第 03 篇) 源码分析:ArrayList](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/collection/ArrayList.md) * [集合框架 (第 04 篇) 源码分析:LinkedList](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/collection/LinkedList.md) * [集合框架 (第 05 篇) 源码分析:Map接口与其内部接口Entry](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/collection/Map.Entry1.7v.md) * [集合框架 (第 06 篇) 源码分析:哈希冲突(哈希碰撞)与解决算法](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/collection/HashConflictsAndResolve.md) * [集合框架 (第 07 篇) 源码分析:jdk1.7版 HashMap](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/collection/HashMap1.7v.md) * [集合框架 (第 08 篇) 源码分析:HashMap、Hashtable、ConcurrentHashMap之间的区别](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/collection/HashMapHashtableConcurrentHashMap.md) * [集合框架 (第 09 篇) 源码分析:jdk1.7版 ConcurrentHashMap](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/collection/ConcurrentHashMap1.7v.md) * [集合框架 (第 10 篇) 源码分析:二叉树、平衡二叉树、二叉查找树、AVL树、红黑树](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/collection/BinaryTrees.md) * [集合框架 (第 11 篇) 源码分析:jdk1.8版 HashMap](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/collection/HashMap1.8v.md) * [集合框架 (第 12 篇) 源码分析:jdk1.8版 ConcurrentHashMap](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/collection/ConcurrentHashMap1.8v.md) * 集合框架 (第 13 篇) 源码分析:LinkedHashMap * 集合框架 (第 14 篇) 源码分析:TreeMap * 集合框架 (第 15 篇) 源码分析:Set 集合 * 集合框架 (第 16 篇) 源码分析:BlockingQueue 接口 * 集合框架 (第 17 篇) 源码分析:CopyOnWriteArrayList 与 CopyOnWriteArraySet ### 二、:radio::radio::radio:JVM(Java虚拟机) * [Java虚拟机 (第 01 篇) 深入理解:JVM内存区域(运行时数据区)](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/jvm/RuntimeDataAreas.md) * [Java虚拟机 (第 03 篇) 深入理解:垃圾收集算法](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/jvm/GarbageCollectionAlgorithm.md) * [Java虚拟机 (第 04 篇) 深入理解:垃圾收集器](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/jvm/GarbageCollector.md) * [Java虚拟机 (第 05 篇) 深入理解:jvm内存分析命令](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/jvm/JVMMemoryAnalysisCommand.md) * Java虚拟机 (第 06 篇) 深入理解:类文件结构 * [Java虚拟机 (第 07 篇) 深入理解:类加载机制](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/jvm/Classloading.md) * Java虚拟机 (第 08 篇) 深入理解:打破双亲委派模型 ### 三、:closed_lock_with_key:Java多线程与并发框架:unlock: * [Java多线程与并发框 (第 01 篇) 深入理解:线程的状态](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/multithreads/ThreadStatus.md) * [Java多线程与并发框 (第 02 篇) 深入理解:线程和进程的区别](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/multithreads/ThreadAndProcess.md) * [Java多线程与并发框 (第 03 篇) 深入理解:Java内存模型与原子性、可见性、有序性](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/multithreads/JavaMemoryModle.md) * [Java多线程与并发框 (第 04 篇) 深入理解:重排序、屏障指令、as-if-serial、happens-before规则](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/multithreads/ThreadRule.md) * [Java多线程与并发框 (第 05 篇) 深入理解:顺序一致性模型](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/multithreads/SequentialConsistencyModel.md) * [Java多线程与并发框 (第 06 篇) 深入理解:synchronized 关键字](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/multithreads/synchronized.md) * [Java多线程与并发框 (第 07 篇) 深入理解:volatile 关键字](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/multithreads/volatile.md) * [Java多线程与并发框 (第 08 篇) 深入理解:Java各种锁与无锁](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/multithreads/LockAndLock-free.md) * [Java多线程与并发框 (第 09 篇) 深入理解:CAS](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/multithreads/CompareAndSwap.md) * [Java多线程与并发框 (第 10 篇) 深入理解:并发包的基石 -- 队列同步器 AQS](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/multithreads/AbstractQueuedSynchronizer.md) * [Java多线程与并发框 (第 11 篇) 深入理解:并发辅助工具类(很好的玩的工具类)](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/multithreads/ConcurrentHelperUtil.md) * [Java多线程与并发框 (第 12 篇) 深入理解:线程池参数](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/multithreads/ThreadPool.md) * Java多线程与并发框 (第 13 篇) 深入理解:Fork/Join框架 * Java多线程与并发框 (第 14 篇) 深入理解:原子操作 * Java多线程与并发框 (第 15 篇) 深入理解:ThreadLocal ### 四、:satellite::satellite::satellite:网络协议:globe_with_meridians::globe_with_meridians::globe_with_meridians: * [网络协议 (第 01 篇) 精讲:ISO的OSI七层参考模型与TCP/IP四层参考模型](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/networking/NetworkModel.md) * [网络协议 (第 02 篇) 精讲:HTTP/1.1、HTTP/2.0、HTTPS的区别](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/networking/HTTP1.1HTTP2.0HTTPS.md) * [网络协议 (第 03 篇) 精讲:GET和POST方法的区别](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/networking/GetPost.md) * [网络协议 (第 04 篇) 精讲:TCP和UPD的区别与对比](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/networking/TCPAndUDP.md) * [网络协议 (第 05 篇) 精讲:TCP三次握手与四次挥手](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/networking/TCPConnectAndDisconnect.md) * [网络协议 (第 06 篇) 精讲:滑动窗口协议](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/networking/SlidingWindowProtocol.md) * 网络协议 (第 07 篇) 精讲:一位用户从浏览器地址框输入url、按下回车键后,经历了什么] * 网络协议 (第 08 篇) 精讲:加密 * [网络协议 (第 09 篇) 精讲:IP地址的分类](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/networking/IPAddressClassification.md) * [网络协议 (第 10 篇) 精讲:常见HTTP状态码及含义](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/networking/StateCode.md) ### 五、:leaves::four_leaf_clover::fountain:Spring 5.x 核心篇 * [Spring 5.x (第 01 篇) 核心篇:反射机制](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/spring/Reflection.md) * [Spring 5.x (第 02 篇) 核心篇:静态代理、jdk动态代理与CGLib](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/spring/DynamicProxy.md) * [Spring 5.x (第 03 篇) 核心篇:请叫我IoC容器](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/spring/InversionOfControl.md) * [Spring 5.x (第 04 篇) 核心篇:依赖注入的问题 -- 循环依赖](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/spring/CyclicDependence.md) * [Spring 5.x (第 05 篇) 核心篇:BeanFactory](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/spring/BeanFactory.md) * [Spring 5.x (第 06 篇) 核心篇:ApplicationContext](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/spring/ApplicationContext.md) * [Spring 5.x (第 07 篇) 核心篇:资源加载器](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/spring/DefaultResourceLoader.md) * [Spring 5.x (第 08 篇) 核心篇:AbstractApplicationContext 源码分析](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/spring/AbstractApplicationContext.md) * [Spring 5.x (第 09 篇) 核心篇:DefaultResourceLoader 源码分析](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/spring/DefaultResourceLoader.md) * [Spring 5.x (第 10 篇) 核心篇:AliasRegistry、BeanDefinitionRegistry与 SimpleAliasRegistry 源码分析](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/spring/AliasRegistry.md) * [Spring 5.x (第 11 篇) 核心篇:SingletonBeanRegistry与DefaultSingletonBeanRegistry 源码分析](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/spring/SingletonBeanRegistry.md) * Spring 5.x (第 12 篇) 核心篇:InitializingBean 源码分析 * [Spring 5.x (第 13 篇) 核心篇:FactoryBeanRegistrySupport与AbstractBeanFactory 源码分析](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/spring/AbstractBeanFactory.md) * [Spring 5.x (第 14 篇) 核心篇:DefaultListableBeanFactory 源码分析](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/spring/DefaultListableBeanFactory.md) * [Spring 5.x (第 15 篇) 核心篇:事件发布与监听机制](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/spring/ApplicationEvent.md) * Spring 5.x (第16 篇) 核心篇:AnnotatedBeanDefinitionReader 源码分析 * Spring 5.x (第 17 篇) 核心篇:GenericApplicationContext 源码分析 * Spring 5.x (第 18 篇) 核心篇:AnnotationConfigRegistry 源码分析 * Spring 5.x (第 19 篇) 核心篇:AnnotationConfigApplicationContext 源码分析 * [Spring 5.x (第 20 篇) 核心篇:Bean的生命周期](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/spring/BeanLifeCycle.md) * [Spring 5.x (第 21 篇) 核心篇:Bean作用域](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/spring/BeanScope.md) * Spring 5.x (第 22 篇) 核心篇:AOP原理分析 * Spring 5.x (第 23 篇) 核心篇:Spring事务传播机制 * [Spring 5.x (第 24 篇) 核心篇:SpringBoot 2.x 启动过程](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/spring/SpringBootStart-upProcedure.md) ### 六、:bird::bird::bird:MyBatis3 源码分析 * MyBatis3 (第 01 篇)源码分析:SqlSession * MyBatis3 (第 02 篇)源码分析:SqlSessionFactory * MyBatis3 (第 03 篇)源码分析:SqlSessionFactoryBuilder * MyBatis3 (第 04 篇)源码分析:SqlSessionManager * MyBatis3 (第 05 篇)源码分析:DefaultSqlSession * MyBatis3 (第 06 篇)源码分析:DefaultSqlSessionFactory * MyBatis3 (第 07 篇)源码分析:Configuration * MyBatis3 (第 08 篇)源码分析:XmlConfigBuilder * MyBatis3 (第 08 篇)源码分析:Executor * MyBatis3 (第 09 篇)源码分析:StatementHandler * MyBatis3 (第 10 篇)源码分析:ParameterHandler * MyBatis3 (第 11 篇)源码分析:ResultSetHandler * MyBatis3 (第 12 篇)源码分析:Reflector * MyBatis3 (第 13 篇)源码分析:ReflectorFactory 与 DefaultReflectorFactory * MyBatis3 (第 14 篇)源码分析:一级缓存和二级缓存 ### 七、:closed_book::green_book::blue_book::notebook_with_decorative_cover::books:高性能 MySQL * [数据库 (第 01 篇)精讲:数据库的三大范式与五大约束](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/database/NormalformAndConstraint.md) * [数据库 (第 02 篇)精讲:事务的ACID四大特性与四种隔离级别](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/database/ACIDAndIsolationLevel.md) * [数据库 (第 03 篇)精讲: MySQL InnoDB 索引](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/database/InnoDB.md) * [数据库 (第 04 篇)精讲: MySQL锁机制](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/database/MySQLLock.md) * [数据库 (第 05 篇)精讲: SQL优化](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/database/SQLOptimization.md) * [数据库 (第 06 篇)精讲: 数据库拆分](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/database/DBSplit.md) ### 八、:sunny::umbrella::zap:Redis 核心应用 - Redis(第 01 篇)核心:数据结构与底层数据结构 - [Redis(第 02 篇)核心:Redis单线程模型为啥这么快?](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/cache/SingleThreadModel.md) - [Redis(第 03 篇)核心:持久化之RDB与AOF](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/cache/Persistence.md) - [Redis(第 04 篇)核心:主从复制与故障转移](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/cache/Replication.md) - Redis(第 05 篇)核心:高可用与 Sentinel 哨兵 - Redis(第 06 篇)核心:分布式缓存与 Redis Cluster - [Redis(第 07 篇)核心:缓存击穿(缓存穿透)、缓存雪崩](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/cache/CachePenetration.md) - [Redis(第 08 篇)核心:热点key](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/cache/HotKey.md) - Redis(第 09 篇)核心:布隆过滤 - Redis(第 10 篇)核心:缓存数据一致性 ### 九、:telescope::tokyo_tower::satellite:分布式系统 * [分布式系统 (第 01 篇) 精讲:集群与分布式](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/distribution/WhatisDistributed.md) * [分布式系统 (第 02 篇) 精讲:CAP定理与BASE理论](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/distribution/CAPandBASE.md) * [分布式系统 (第 03 篇) 精讲:X/Open DTP 与 XA 事务](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/distribution/XA.md) * [分布式系统 (第 04 篇) 精讲:2PC协议和3PC协议](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/distribution/2PCand3PC.md) * [分布式系统 (第 05 篇) 精讲:TCC事务补偿机制(柔性事务方案)](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/distribution/TryConfirmCancel.md) * 分布式系统 (第 06 篇) 精讲:Paxos 协议(强一致性协议) * 分布式系统 (第 07 篇) 精讲:ZAB 协议 * 分布式系统 (第 08 篇) 精讲:Raft 协议 * 分布式系统 (第 09 篇) 精讲:Chubby 与 Zookeeper * [分布式系统 (第 10 篇) 精讲:一致性哈希算法](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/distribution/ConsistentHashing.md) * [分布式系统 (第 11 篇) 精讲:设计分布式锁](https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/distribution/DistributedLock.md) * 分布式系统 (第 12 篇) 精讲:分布式session/token一致性设计 * 分布式系统 (第 13 篇) 精讲:分布式事务 * 分布式系统 (第 14 篇) 精讲:分布式任务调度 * 分布式系统 (第 15 篇) 精讲:分布式高并发的支持与控制 * 分布式系统 (第 16 篇) 精讲:分布式支付框架的实现 ### 十、:microscope::microscope::microscope:微服务 * 微服务 (第 01 篇) 精讲:微服务与SOA * 微服务 (第 02 篇) 精讲:服务建模 * 微服务 (第 03 篇) 精讲:服务拆分 * 微服务 (第 04 篇) 精讲:微服务的核心 -- 服务治理(服务注册与发现中心) * 微服务 (第 05 篇) 精讲:服务网关Gateway * 微服务 (第 05 篇) 精讲:配置中心 * 微服务 (第 06 篇) 精讲:路由Routing * 微服务 (第 07 篇) 精讲:负载均衡算法 * 微服务 (第 08 篇) 精讲:服务限流、服务隔离、服务熔断、服务降级、快速失败 * 微服务 (第 09 篇) 精讲:容器化 * 微服务 (第 10 篇) 精讲:SpringCloud ### 十一、:bicyclist::horse_racing::snowboarder:高并发与高可用 * 高并发与高可用 (第 01 篇) 精讲:全局id生成算法 * 高并发与高可用 (第 01 篇) 精讲:如何实现请求幂等性 * 高并发与高可用 (第 01 篇) 精讲:常见的负载均衡算法 * 高并发与高可用 (第 01 篇) 精讲:如何防止网络抖动产生的重复建单 * 高并发与高可用 (第 01 篇) 精讲:如何度过服务器重启后的连接风暴 * 高并发与高可用 (第 01 篇) 精讲:数据持久化 + ACK + 补偿重试+请求幂等性+防重设计 * 高并发与高可用 (第 01 篇) 精讲: 抢红包系统实现(高并发系统三把利刃:缓存、限流、降级) ### :soon:未完,待续 ... ### 联系作者:flags:: > :postbox:linkedme@qq.com >