**原创文章每周更新**。公众号首发。技术文字在写的过程中难免会有纰漏,或者细节不够完善。大家发现问题,可以及时给我 PR 反馈,也可以去 [公众号](https://github.com/niumoo/JavaNotes#%E5%85%AC%E4%BC%97%E5%8F%B7) 给我留言,或者加我 [微信](https://github.com/niumoo/JavaNotes#联系我) 直接说明,我都会及时更正,哪怕是一个错别字。加油!奥利给!

Java Notes

wechat 公众号 CSDN 掘金 博客园 知乎 未读代码

目录中没有链接的部分,后续每周更新(2020年有的写了),项目刚刚建立,感谢你的 :star: ,有问题或者建议可以[一起完善](https://github.com/niumoo/JavaNotes#-%E8%B4%A1%E7%8C%AE%E4%B8%8E%E5%BB%BA%E8%AE%AE)。 **注:如果Github 访问较慢**,可以访问每篇文章后面的**微信链接**,也可以访问网站 [**https://www.wdbyte.com**](https://www.wdbyte.com) 阅读。 ### 🔬 JDK 源码分析 面试必备的 JDK 源码分析。探寻 JDK 大佬的设计思路。没有链接部分为后续更新内容,持续更新中。 - [集合 - 最通俗易懂的 HashMap 源码分析解读](https://github.com/niumoo/JavaNotes/blob/master/docs/jdk/java-src-hashmap.md) | [微信链接](https://mp.weixin.qq.com/s/q-rWq79HmzPe08gyfOjaIA) - [集合 - 还不懂 ConcurrentHashMap ?这份源码分析了解一下](https://github.com/niumoo/JavaNotes/blob/master/docs/jdk/java-src-concurrent-hashmap.md) | [微信链接](https://mp.weixin.qq.com/s/AHWzboztt53ZfFZmsSnMSw) - [集合 - ArrayList和LinkedList如何实现的?我看你还有机会!](https://github.com/niumoo/JavaNotes/blob/master/docs/jdk/java-src-arrayList-linkedList.md) | [微信链接](https://mp.weixin.qq.com/s/_x3K_iK4ZimLL4qdS7UZ8Q) - 集合 - CopyOnWriteArrayList - 集合 - HashSet & TreeSet & LinkedHashSet - 基础类 - Object - 基础类 - String - 基础类 - StringBuffer & StringBuilder ### 🌿 SpringBoot 2.x 下面所有 SpringBoot 2.x 文章对应的代码示例都在这里 [Github.com/niumoo/springboot](https://github.com/niumoo/springboot) 仓库。 - [Springboot 系列(十八)最详细的 Spring Boot 多模块开发与排坑指南](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-03-auto-config.md) | [微信链接](https://mp.weixin.qq.com/s/4ffDc99rzUEM3c4ZoTHsIA) - [Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-17-admin.md) | [微信链接](https://mp.weixin.qq.com/s/AwlTf2MIx_Rp8jL4CcX3AA) - [Springboot 系列(十六)你真的了解 Swagger 文档吗?](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-16-web-swagger.md) | [微信链接](https://mp.weixin.qq.com/s/fE9-SI6mJzMD2S9TpKRyAg) - [Springboot 系列(十五)如何编写自己的 Springboot starter](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-15-my-starter.md) | [微信链接](https://mp.weixin.qq.com/s/V-uPpfNxnhXRNa6ExfUD-A) - [Springboot 系列(十四)迅速启用 HTTPS 加密你的网站](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-14-https.md) | [微信链接](https://mp.weixin.qq.com/s/TwL_IRTzN9wubuw0ddXZbQ) - [Springboot 系列(十三)使用邮件服务](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-13-email.md) | [微信链接](https://mp.weixin.qq.com/s/WTpc6A39ikZR_uM6sUf1CA) - [Springboot 系列(十二)使用 Mybatis 集成 pagehelper 分页插件和 mapper 插件](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-12-data-mybatis-page.md) | [微信链接](https://mp.weixin.qq.com/s/Eij-GU3yQijyYmQcsghsgg) - [Springboot 系列(十一)使用 Mybatis(自动生成插件) 访问数据库](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-11-data-mybatis.md) | [微信链接](https://mp.weixin.qq.com/s/-8ytSdjKGmukdNKx_f0jLw) - [Springboot 系列(十)使用 Spring data jpa 访问数据库](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-10-data-jpa.md) | [微信链接](https://mp.weixin.qq.com/s/oyD4P074A0wj7rU5rB4EFw) - [Springboot 系列(九)使用 Spring JDBC 和 Druid 数据源监控](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-09-data-jdbc.md) | [微信链接](https://mp.weixin.qq.com/s/lp-mmjocibzPB8-CnGSe4Q) - [Springboot 系列(八)动态Banner与图片转字符图案的手动实现](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-08-banner.md) | [微信链接](https://mp.weixin.qq.com/s/nQq3KS7l2B9wr90aOe0cEw) - [Springboot 系列(七)web 开发之异常错误处理机制剖析](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-07-web-exception.md) | [微信链接](https://mp.weixin.qq.com/s/AidIrbZm3FSWAqo5_2QE2g) - [Springboot 系列(六)web 开发之拦截器和三大组件](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-06-web-filter-apo-webbase.md) | [微信链接](https://mp.weixin.qq.com/s/yM87mQC4HQ5O_ZyunW0JkQ) - [Springboot 系列(五)web 开发之静态资源和模版引擎](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-05-web-static-template.md) | [微信链接](https://mp.weixin.qq.com/s/IFzyTlpkAyHY4Li4mPERKg) - [Springboot 系列(四)Spring Boot 日志框架](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-04-log.md) | [微信链接](https://mp.weixin.qq.com/s/fpSmM7fXFTVRV_5qP94xXw) - [Springboot 系列(三)Spring Boot 自动配置](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-03-auto-config.md) | [微信链接](https://mp.weixin.qq.com/s/fehMKv3DUTnB2w_0cSdnhQ) - [Springboot 系列(二)Spring Boot 配置文件](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-02-config.md) | [微信链接](https://mp.weixin.qq.com/s/g_yISWxL7mpGvqaT9uKa4g) - [Springboot 系列(一)Spring Boot 入门篇](https://github.com/niumoo/JavaNotes/blob/master/docs/springboot/springboot-01-quick-start.md) | [微信链接](https://mp.weixin.qq.com/s/iQapGQ3oErzBTxCvD7USNw) ### ☕ Java 新特性 Java 版本任你发,我用 Java 8 。但是多学点这种装x技巧总没错,何况有些新特性是**真香**。 持续更新中,下面所有文字的代码演示和 Demo 都在这里 [Github.com/niumoo/jdk-feature](https://github.com/niumoo/jdk-feature). - Java 14 新特性讲解 - Java 13 新特性讲解 - Java 12 新特性讲解 - [Java 11 新特性讲解](https://github.com/niumoo/JavaNotes/blob/master/docs/jdk/java-11-feature.md) | [微信链接](https://mp.weixin.qq.com/s/hmuiDzLG7gakeVjvaKV6UA) - [Java 10 新特性讲解](https://github.com/niumoo/JavaNotes/blob/master/docs/jdk/java-10-feature.md) | [微信链接](https://mp.weixin.qq.com/s/0ecCpeoeNRB8RLKvD9ktdQ) - [Java 09 新特性讲解](https://github.com/niumoo/JavaNotes/blob/master/docs/jdk/java-09-feature.md) | [微信链接](https://mp.weixin.qq.com/s/qQ9qysceiJdu9sYpl-7W6A) - [Java 8 新特性 - 超强的 Stream 流操作姿势](https://github.com/niumoo/JavaNotes/blob/master/docs/jdk/java-08-feature-stream.md) | [微信链接](https://mp.weixin.qq.com/s/qKowwsJNd4PUaZ1XVbTBNQ) - [Java 8 新特性 - Lambda 表达式、函数接口](https://github.com/niumoo/JavaNotes/blob/master/docs/jdk/java-08-feature-lambda.md) | [微信链接](https://mp.weixin.qq.com/s/FPKyOyiKPQBLdrF0bf9nHw) - [Java 8 新特性 - 时间处理姿势](https://github.com/niumoo/JavaNotes/blob/master/docs/jdk/java-08-feature-time.md) | [微信链接](https://mp.weixin.qq.com/s/bbuItfxLgemJRuFb6iqWzA) - [Java 8 新特性 - 使用 Optional优雅的处理空指针?](https://github.com/niumoo/JavaNotes/blob/master/docs/jdk/java-08-feature-optional.md) | [微信链接](https://mp.weixin.qq.com/s/nPcqSgNkLrxdfqX8RWmCgA) - [Java 7 新特性讲解](https://github.com/niumoo/JavaNotes/blob/master/docs/jdk/java-07-feature.md) | [微信链接](https://mp.weixin.qq.com/s/fdW1wwcYgg0INixN4BtgbQ) ### 💻 Java 并发编程 - 线程基础之通知、等待、休眠、让行、中断 - ThreadLocal - 内存可见性、伪共享 - synchronized - volatile - 原子操作 - 排它锁、悲观锁、乐观锁、公平锁、非公平锁、独占锁、共享锁、重入锁、自旋锁 - ThreadLocalRandom - LongAdder - CopyOnWriteArrayList - 锁的原理:LockSupport、ReentrantLock、ReentrantReadWriteLock - 并发队列(Queue) - 线程池 ThreadPoolExecutor - 线程池 ScheduledThreadPoolExecutor - 同步器 CountDownLatch、CyclicBarrier、Semaphore - Java 并发编程注意事项 ### 🕹 Java 虚拟机 - Java 内存模型 - 垃圾回收算法 - 垃圾收集器 - JVM 性能监控与故障处理 - JVM 性能调优 - Java 类文件结构 - JVM 类加载过程 - 前端编译 & 后端编译 & 优化 - 锁的自动优化升级策略 ### 🔍 Java 性能分析 - [JMH-大厂是如何使用JMH进行Java代码性能测试的?必须掌握!](https://github.com/niumoo/JavaNotes/blob/master/docs/tool/tool-jmh.md) | [微信链接](https://mp.weixin.qq.com/s/-0enKREKarGRipk0PkXgBA) - [Arthas - Java 线上问题定位处理的终极利器](https://github.com/niumoo/JavaNotes/blob/master/docs/tool/tool-arthas.md)| [微信链接](https://mp.weixin.qq.com/s/AZSlr2mWXL1-GFOBYVBA1g) - [超好用的自带火焰图的 Java 性能分析工具 Async-profiler 了解一下](https://github.com/niumoo/JavaNotes/blob/master/docs/tool/tool-async-profiler.md)| [微信链接](https://mp.weixin.qq.com/s/Fvacprgk7fYvo7qS1liHDg) ### 🧱 数据结构 - 数组 - 栈 - 队列 - 链表 - 树 - 哈希表 - 堆 - 图 ### 🧰 工具技巧 >“工欲善其事,必先利其器” >出处:孔子《论语》 一款好用的工具,不仅可以装X,更可以让你事半功倍,准时下班。 - [可以Postman,也可以cURL.进来领略下cURL的独门绝技](https://github.com/niumoo/JavaNotes/blob/master/docs/tool/tool-curl.md) | [微信链接](https://mp.weixin.qq.com/s/jK4ctq5VQjw4oPSO0gEp6Q) - [抛弃Eclipse,投入IDEA 的独孤求败江湖](https://github.com/niumoo/JavaNotes/blob/master/docs/tool/tool-idea-skill.md)| [微信链接](https://mp.weixin.qq.com/s/-jzzxd_eEmTGVntabhT-CA) - [如何使用 Lombok 进行优雅的编码](https://github.com/niumoo/JavaNotes/blob/master/docs/tool/tool-Lombok.md)| [网站链接](https://www.wdbyte.com/2018/12/develop/tool-Lombok/) - [使用Apache Ant 进行Java web项目打包并部署至TOMCAT](https://github.com/niumoo/JavaNotes/blob/master/docs/tool/tool-apache-ant.md)| [网站链接](https://www.wdbyte.com/2017/11/develop/tool-apache-ant/) - [Linux配置Tomcat的单机多实例](https://github.com/niumoo/JavaNotes/blob/master/docs/tool/tool-install-tomcat-many-instance.md)| [网站链接](https://www.wdbyte.com/2018/08/develop/install-tomcat-many-instance/) - [Linux定时任务crontab的使用](https://github.com/niumoo/JavaNotes/blob/master/docs/linux/linux-crontab.md)| [网站链接](https://www.wdbyte.com/2018/05/linux/linux-crontab/) - [使用MyBatis Generator自动生成Model、Dao、Mapper相关代码](https://github.com/niumoo/JavaNotes/blob/master/docs/tool/tool-mybatis-generator.md)| [网站链接](https://www.wdbyte.com/2017/11/develop/tool-mybatis-generator/) - [原来热加载如此简单,手动写一个 Java 热加载吧](https://www.wdbyte.com/2019/10/jvm/java-hotput/)| [微信链接](https://mp.weixin.qq.com/s/Dpz1x_UyXeIMiA2hc7wZUw) - [Manjaro Linux 入门使用教程](https://github.com/niumoo/JavaNotes/blob/master/docs/linux/linux-manjaro.md)| [微信链接](https://mp.weixin.qq.com/s/ulueZbYaADsVbX23Fu-lzQ) - [Ubuntu18 的超详细常用软件安装](https://github.com/niumoo/JavaNotes/blob/master/docs/linux/linux-ubuntu-start.md)| [微信链接](https://mp.weixin.qq.com/s/AKlVxkzwoyvcLDPPXlpm8g) ### ⏳ 开发相关 - [一篇有趣的负载均衡算法实现](https://github.com/niumoo/JavaNotes/blob/master/docs/algorithm/负载均衡.md) | [微信链接](https://mp.weixin.qq.com/s/jNIxbw9sUPMZr_Fw_EFKFQ) - [撸了个多线程断点续传下载器,我从中学习到了这些知识](https://github.com/niumoo/JavaNotes/blob/master/docs/tool/tool-java-download.md) | [微信链接](https://mp.weixin.qq.com/s/bI5xYq3jUtp-sviKlzHtNg) - [Java 开发的编程噩梦,这些坑你没踩过算我输](https://github.com/niumoo/JavaNotes/blob/master/docs/java/java-think-code-standards.md) | [微信链接](https://mp.weixin.qq.com/s/6JZjVO3rj5WRgdc88XfA0w) ### 💬 消息中间件 - [消息队列中间件(三)Kafka 入门指南](https://github.com/niumoo/JavaNotes/blob/master/docs/mq/mq-kafka-introduction.md)| [微信链接](https://mp.weixin.qq.com/s/FtVl7ZJXetA95c_9BtsXhg) - [消息队列中间件(二)使用 ActiveMQ](https://github.com/niumoo/JavaNotes/blob/master/docs/mq/mq-activemq.md) | [微信链接](https://mp.weixin.qq.com/s/D0sclKz2gGUvllISjqHgyw) - [消息队列中间件(一)介绍](https://github.com/niumoo/JavaNotes/blob/master/docs/mq/mq-introduction.md) | [微信链接](https://mp.weixin.qq.com/s/Gg3STCrnLsormMl1HyZrrQ) - [IO通信模型(三)多路复用IO](https://github.com/niumoo/JavaNotes/blob/master/docs/mq/io-nio-selector.md) | [微信链接](https://mp.weixin.qq.com/s/4Xqk17NRlx56XfzSRhTNPA) - [IO通信模型(二)同步非阻塞模式NIO(NonBlocking IO)](https://github.com/niumoo/JavaNotes/blob/master/docs/mq/io-bon-blocking.md) | [微信链接](https://mp.weixin.qq.com/s/lad3Ot2LQy6DEwMBH5NW1g) - [IO通信模型(一)同步阻塞模式BIO(Blocking IO)](https://github.com/niumoo/JavaNotes/blob/master/docs/mq/io-blocking.md) | [微信链接](https://mp.weixin.qq.com/s/1-8fMMIGxKiyXG6852xpaA) ### 🗺 贡献与建议 1. 内容难免存在笔误,一个错别字,一个语法错误,都是贡献。 2. 文章中的错误和不足,或者不完善的地方都可以进行补充或者修改。 3. 我没有涉及到的知识点,也可以进行补充。 ### 🏃 我的痕迹 GitHub:[https://github.com/niumoo](https://github.com/niumoo) CSDN:[https://niumoo.blog.csdn.net/](https://niumoo.blog.csdn.net/) 博客园:[https://www.cnblogs.com/niumoo/](https://www.cnblogs.com/niumoo/) 掘 金:[https://juejin.im/user/5a62d481f265da3e2a0dac9b](https://juejin.im/user/5a62d481f265da3e2a0dac9b) 思 否:[https://segmentfault.com/u/niumoo](https://segmentfault.com/u/niumoo) 知 乎:[https://www.zhihu.com/people/bpdwn](https://www.zhihu.com/people/bpdwn) 简 书:[https://www.jianshu.com/u/271cd169b146](https://www.jianshu.com/u/271cd169b146) 我的网站:[https://www.wdbyte.com/](https://www.wdbyte.com/) 公众号:微信搜索「 **未读代码** 」每一篇文字都会都先在公众号进行发布。 ### 联系我 可以添加我的微信 wn8398 一起交流。 微信 ### 公众号 有帮助可以点「**赞**」在看或 :star: **Star**,谢谢你! 如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注「 **未读代码** 」公众号。 ![公众号](https://cdn.jsdelivr.net/gh/niumoo/cdn-assets/webinfo/weixin-public.jpg)