{"id":13424868,"url":"https://github.com/crossoverJie/JCSprout","last_synced_at":"2025-03-15T18:36:02.731Z","repository":{"id":38365079,"uuid":"114523184","full_name":"crossoverJie/JCSprout","owner":"crossoverJie","description":"👨‍🎓 Java Core Sprout : basic, concurrent, algorithm ","archived":false,"fork":false,"pushed_at":"2024-05-21T02:46:20.000Z","size":1191,"stargazers_count":27081,"open_issues_count":45,"forks_count":7084,"subscribers_count":1652,"default_branch":"master","last_synced_at":"2024-12-18T14:10:08.715Z","etag":null,"topics":["algorithm","basic-java","concurrent-programming","java","jvm","netty"],"latest_commit_sha":null,"homepage":"https://crossoverjie.top/JCSprout","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crossoverJie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-17T09:06:50.000Z","updated_at":"2024-12-15T03:45:19.000Z","dependencies_parsed_at":"2024-05-21T03:31:14.680Z","dependency_job_id":"de854f17-cae0-40a0-911a-ac5d3ab52bca","html_url":"https://github.com/crossoverJie/JCSprout","commit_stats":{"total_commits":632,"total_committers":30,"mean_commits":"21.066666666666666","dds":0.09335443037974689,"last_synced_commit":"138bf674028a5e14584d94576cbacb97cbdf56de"},"previous_names":["crossoverjie/java-interview"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossoverJie%2FJCSprout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossoverJie%2FJCSprout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossoverJie%2FJCSprout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossoverJie%2FJCSprout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crossoverJie","download_url":"https://codeload.github.com/crossoverJie/JCSprout/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243775942,"owners_count":20346293,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithm","basic-java","concurrent-programming","java","jvm","netty"],"created_at":"2024-07-31T00:01:00.354Z","updated_at":"2025-03-15T18:35:57.714Z","avatar_url":"https://github.com/crossoverJie.png","language":"Java","readme":"\n\u003cdiv align=\"center\"\u003e  \n\n\u003cimg src=\"https://s2.loli.net/2024/05/17/D8brxzCPh5vpOFk.png\" width=\"\"/\u003e \n\u003cbr/\u003e\n\n[![Build Status](https://travis-ci.org/crossoverJie/JCSprout.svg?branch=master)](https://travis-ci.org/crossoverJie/JCSprout)\n[![QQ群](https://img.shields.io/badge/QQ%E7%BE%A4-787381170-yellowgreen.svg)](https://jq.qq.com/?_wv=1027\u0026k=5HPYvQk)\n\n[qq0groupsvg]: https://img.shields.io/badge/QQ%E7%BE%A4-787381170-yellowgreen.svg\n[qq0group]: https://jq.qq.com/?_wv=1027\u0026k=5HPYvQk\n\n\u003c/div\u003e\u003cbr\u003e\n\n\n\u003e `Java Core Sprout`：处于萌芽阶段的 Java 核心知识库。\n\n**访问这里获取更好的阅读体验**：[https://crossoverjie.top/JCSprout/](https://crossoverjie.top/JCSprout/)\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e  \n\n\u003ca href=\"https://t.zsxq.com/odQDJ\" target=\"_blank\"\u003e\u003cimg src=\"https://s2.loli.net/2024/05/17/zRkabDu2SKfChLX.png\" alt=\"202405171520366.png\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n最近开通了知识星球，感谢大家对 `JCSprout` 的支持，为大家提供 100 份 10 元优惠券，也就是 69-10=59 元，具体福利大家可以扫码参考再决定是否加入。\n\n\u003e PS: 后续会继续维护该项目，同时加入现在热门的 Golang/kubernetes/OpenTelemetry 等知识点，感兴趣的可以加入星球当面催更（当然内容也会更新到这个项目里）。\n\n\n| 📊 |⚔️ | 🖥 | 🚏 | 🏖  | 🌁| 📮 | 🔍 | 🚀 | 🌈 |💡\n| :--------: | :---------: | :---------: | :---------: | :---------: | :---------:| :---------: | :-------: | :-------:| :------:|:------:|\n| [集合](#常用集合) | [多线程](#java-多线程)|[JVM](#jvm) | [分布式](#分布式相关) |[框架](#常用框架第三方组件)|[架构设计](#架构设计)| [数据库](#db-相关) |[算法](#数据结构与算法)|[Netty](#netty-相关)| [附加技能](#附加技能)|[联系作者](#联系作者) |\n\n\n\n### 常用集合\n- [ArrayList/Vector](https://github.com/crossoverJie/JCSprout/blob/master/MD/ArrayList.md)\n- [LinkedList](https://github.com/crossoverJie/JCSprout/blob/master/MD/LinkedList.md)\n- [HashMap](https://github.com/crossoverJie/JCSprout/blob/master/MD/HashMap.md)\n- [HashSet](https://github.com/crossoverJie/JCSprout/blob/master/MD/collection/HashSet.md)\n- [LinkedHashMap](https://github.com/crossoverJie/JCSprout/blob/master/MD/collection/LinkedHashMap.md)\n\n### Java 多线程\n- [多线程中的常见问题](https://github.com/crossoverJie/JCSprout/blob/master/MD/Thread-common-problem.md)\n- [synchronized 关键字原理](https://github.com/crossoverJie/JCSprout/blob/master/MD/Synchronize.md)\n- [多线程的三大核心](https://github.com/crossoverJie/JCSprout/blob/master/MD/Threadcore.md)\n- [对锁的一些认知](https://github.com/crossoverJie/JCSprout/blob/master/MD/Java-lock.md)\n- [ReentrantLock 实现原理 ](https://github.com/crossoverJie/JCSprout/blob/master/MD/ReentrantLock.md)\n- [ConcurrentHashMap 的实现原理](https://github.com/crossoverJie/JCSprout/blob/master/MD/ConcurrentHashMap.md)\n- [如何优雅的使用和理解线程池](https://github.com/crossoverJie/JCSprout/blob/master/MD/ThreadPoolExecutor.md)\n- [深入理解线程通信](https://github.com/crossoverJie/JCSprout/blob/master/MD/concurrent/thread-communication.md)\n- [一个线程罢工的诡异事件](docs/thread/thread-gone.md)\n- [线程池中你不容错过的一些细节](docs/thread/thread-gone2.md)\n- [『并发包入坑指北』之阻塞队列](docs/thread/ArrayBlockingQueue.md)\n\n### JVM\n- [Java 运行时内存划分](https://github.com/crossoverJie/JCSprout/blob/master/MD/MemoryAllocation.md)\n-  [类加载机制](https://github.com/crossoverJie/JCSprout/blob/master/MD/ClassLoad.md)\n-  [OOM 分析](https://github.com/crossoverJie/JCSprout/blob/master/MD/OOM-analysis.md)\n- [垃圾回收](https://github.com/crossoverJie/JCSprout/blob/master/MD/GarbageCollection.md)\n- [对象的创建与内存分配](https://github.com/crossoverJie/JCSprout/blob/master/MD/newObject.md)\n- [你应该知道的 volatile 关键字](https://github.com/crossoverJie/JCSprout/blob/master/MD/concurrent/volatile.md)\n- [一次内存溢出排查优化实战](https://crossoverjie.top/2018/08/29/java-senior/OOM-Disruptor/)\n- [一次 HashSet 所引起的并发问题](docs/jvm/JVM-concurrent-HashSet-problem.md)\n- [一次生产 CPU 100% 排查优化实践](docs/jvm/cpu-percent-100.md)\n\n### 分布式相关\n\n- [分布式限流](http://crossoverjie.top/2018/04/28/sbc/sbc7-Distributed-Limit/)\n- [基于 Redis 的分布式锁](http://crossoverjie.top/2018/03/29/distributed-lock/distributed-lock-redis/)\n- [分布式缓存设计](https://github.com/crossoverJie/JCSprout/blob/master/MD/Cache-design.md)\n- [分布式 ID 生成器](https://github.com/crossoverJie/JCSprout/blob/master/MD/ID-generator.md)\n\n### 常用框架\\第三方组件\n\n- [Spring Bean 生命周期](https://github.com/crossoverJie/JCSprout/blob/master/MD/spring/spring-bean-lifecycle.md)\n- [Spring AOP 的实现原理](https://github.com/crossoverJie/JCSprout/blob/master/MD/SpringAOP.md) \n- [Guava 源码分析（Cache 原理）](https://crossoverjie.top/2018/06/13/guava/guava-cache/)\n- [轻量级 HTTP 框架](https://github.com/crossoverJie/cicada)\n- [Kafka produce 源码分析](https://github.com/crossoverJie/JCSprout/blob/master/MD/kafka/kafka-product.md)\n- [Kafka 消费实践](https://github.com/crossoverJie/JCSprout/blob/master/docs/frame/kafka-consumer.md)\n\n\n### 架构设计\n- [秒杀系统设计](https://github.com/crossoverJie/JCSprout/blob/master/MD/Spike.md)\n- [秒杀架构实践](http://crossoverjie.top/2018/05/07/ssm/SSM18-seconds-kill/)\n- [设计一个百万级的消息推送系统](https://github.com/crossoverJie/JCSprout/blob/master/MD/architecture-design/million-sms-push.md)\n\n### DB 相关\n\n- [MySQL 索引原理](https://github.com/crossoverJie/JCSprout/blob/master/MD/MySQL-Index.md)\n- [SQL 优化](https://github.com/crossoverJie/JCSprout/blob/master/MD/SQL-optimization.md)\n- [数据库水平垂直拆分](https://github.com/crossoverJie/JCSprout/blob/master/MD/DB-split.md)\n- [一次分表踩坑实践的探讨](docs/db/sharding-db.md)\n\n### 数据结构与算法\n- [红包算法](https://github.com/crossoverJie/JCSprout/blob/master/src/main/java/com/crossoverjie/red/RedPacket.java)\n- [二叉树层序遍历](https://github.com/crossoverJie/JCSprout/blob/master/src/main/java/com/crossoverjie/algorithm/BinaryNode.java#L76-L101)\n- [是否为快乐数字](https://github.com/crossoverJie/JCSprout/blob/master/src/main/java/com/crossoverjie/algorithm/HappyNum.java#L38-L55)\n- [链表是否有环](https://github.com/crossoverJie/JCSprout/blob/master/src/main/java/com/crossoverjie/algorithm/LinkLoop.java#L32-L59)\n- [从一个数组中返回两个值相加等于目标值的下标](https://github.com/crossoverJie/JCSprout/blob/master/src/main/java/com/crossoverjie/algorithm/TwoSum.java#L38-L59)\n- [一致性 Hash 算法原理](https://github.com/crossoverJie/JCSprout/blob/master/MD/Consistent-Hash.md)\n- [一致性 Hash 算法实践](https://github.com/crossoverJie/JCSprout/blob/master/docs/algorithm/consistent-hash-implement.md)\n- [限流算法](https://github.com/crossoverJie/JCSprout/blob/master/MD/Limiting.md)\n- [三种方式反向打印单向链表](https://github.com/crossoverJie/JCSprout/blob/master/src/main/java/com/crossoverjie/algorithm/ReverseNode.java)\n- [合并两个排好序的链表](https://github.com/crossoverJie/JCSprout/blob/master/src/main/java/com/crossoverjie/algorithm/MergeTwoSortedLists.java)\n- [两个栈实现队列](https://github.com/crossoverJie/JCSprout/blob/master/src/main/java/com/crossoverjie/algorithm/TwoStackQueue.java)\n- [动手实现一个 LRU cache](http://crossoverjie.top/2018/04/07/algorithm/LRU-cache/)\n- [链表排序](./src/main/java/com/crossoverjie/algorithm/LinkedListMergeSort.java)\n- [数组右移 k 次](./src/main/java/com/crossoverjie/algorithm/ArrayKShift.java)\n- [交替打印奇偶数](https://github.com/crossoverJie/JCSprout/blob/master/src/main/java/com/crossoverjie/actual/TwoThread.java)\n- [亿级数据中判断数据是否不存在](https://github.com/crossoverJie/JCSprout/blob/master/docs/algorithm/guava-bloom-filter.md) \n\n### Netty 相关\n- [SpringBoot 整合长连接心跳机制](https://crossoverjie.top/2018/05/24/netty/Netty(1)TCP-Heartbeat/)\n- [从线程模型的角度看 Netty 为什么是高性能的？](https://crossoverjie.top/2018/07/04/netty/Netty(2)Thread-model/)\n- [为自己搭建一个分布式 IM(即时通讯) 系统](https://github.com/crossoverJie/cim)\n\n### 附加技能\n\n- [TCP/IP 协议](https://github.com/crossoverJie/JCSprout/blob/master/MD/TCP-IP.md)\n- [一个学渣的阿里之路](https://crossoverjie.top/2018/06/21/personal/Interview-experience/)\n- [如何成为一位「不那么差」的程序员](https://crossoverjie.top/2018/08/12/personal/how-to-be-developer/)\n- [如何高效的使用 Git](https://github.com/crossoverJie/JCSprout/blob/master/MD/additional-skills/how-to-use-git-efficiently.md)\n\n\n### 联系作者\n\n\u003e crossoverJie#gmail.com\n\n![index.jpg](https://i.loli.net/2021/10/12/ckQW9LYXSxFogJZ.jpg) \n","funding_links":[],"categories":["面试","HarmonyOS","Java","Java/Kotlin","[Visual Basic](#visual-basic)","Tutorial","Java 程序设计","Java (504)","工具集"],"sub_categories":["Windows Manager","Java","网络服务_其他","Java基础","计算机基础-java"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FcrossoverJie%2FJCSprout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FcrossoverJie%2FJCSprout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FcrossoverJie%2FJCSprout/lists"}