Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/niumoo/javanotes

🧱 「Java学习」一份涵盖大部分Java程序员所需要掌握的核心知识。JDK 源码分析 & Java 新特性 & Java 并发编程 & Java 虚拟机 & SpringBoot 2.x 系列
https://github.com/niumoo/javanotes

algorithm java java-library jdk jvm

Last synced: about 1 month ago
JSON representation

🧱 「Java学习」一份涵盖大部分Java程序员所需要掌握的核心知识。JDK 源码分析 & Java 新特性 & Java 并发编程 & Java 虚拟机 & SpringBoot 2.x 系列

Awesome Lists containing this project

README

        

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

Java Notes



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

目录中没有链接的部分,后续更新,感谢你的关注 ,有问题或者建议可以[一起完善](#🗺-贡献与建议)。
> Hi there 👋 我是阿朗, 一名 Java 开发者,热衷于分享一些通俗易懂的技术文章。 分享几句鸡汤,长寿在于生活规律;成功在于坚持不懈。 做好的事情,而不是好做的事情。

## ⏳ Java 开发

- [如何破解滑动验证码?](https://www.wdbyte.com/java/img-verification/)
- [你好 ChatGPT, 帮我看下这段代码有什么问题?](https://www.wdbyte.com/java/chatgpt-files-list.html)
- [JUnit5 单元测试教程](https://www.wdbyte.com/java/junit5.html)
- [使用 StringUtils.split 的坑](https://www.wdbyte.com/java/stringutils_split.html)
- [必应壁纸,我的第一个 400 Star 开源项目](https://www.wdbyte.com/bing-wallpaper-400.html)
- [Java 中的对象池化](https://www.wdbyte.com/java/object-pool.html)
- [5种限流算法,7种限流方式,挡住突发流量?](https://www.wdbyte.com/java/rate-limiter.html)
- [Java 中拼接 String 的 N 种方式](https://www.wdbyte.com/java/string-concat.html)
- [字符作画,我用字符画个冰墩墩](https://www.wdbyte.com/java/char-image.html)
- [Java 中 RMI 的使用](https://www.wdbyte.com/2021/05/java/java-rmi/)
- [如何使用 Github Actions 自动抓取每日必应壁纸?](https://www.wdbyte.com/2021/03/bing-wallpaper-github-action/)
- [三种骚操作绕过迭代器遍历时的数据修改异常](https://www.wdbyte.com/2021/02/develop/interator-update/)
- [Guava - 拯救垃圾代码,写出优雅高效,效率提升N倍](https://www.wdbyte.com/2020/10/develop/google-guava/)
- [「1024」专属序猿的快乐,惊奇迷惑代码大赏](https://www.wdbyte.com/2020/10/2020-1024/)
- [一篇有趣的负载均衡算法实现](https://www.wdbyte.com/2020/05/algorithm/load-balancing/)
- [撸了个多线程断点续传下载器,我从中学习到了这些知识](https://www.wdbyte.com/2020/07/tool/java-download/)
- [Java 开发的编程噩梦,这些坑你没踩过算我输](https://www.wdbyte.com/2020/08/java/java-code-standards/)
- [如何使用 Lombok 进行优雅的编码](https://www.wdbyte.com/2018/12/develop/tool-lombok/)
- [使用MyBatis Generator自动生成Model、Dao、Mapper相关代码](https://www.wdbyte.com/2017/11/develop/tool-mybatis-generator/)

## 😍 Java 基础教程

- [JDK、JRE、JVM 的区别](https://www.wdbyte.com/java/jdk-jre-jvm/)
- [Java 数据类型](https://www.wdbyte.com/java/data-type/)
- [Java 流程控制](https://www.wdbyte.com/java/flow-control/)
- [Java String 字符串](https://www.wdbyte.com/java/java-string/)
- [Java StringBuilder](https://www.wdbyte.com/java/java-stringbuilder/)
- [Java Scanner](https://www.wdbyte.com/java/scanner/)
- [Java 多态](https://www.wdbyte.com/java/polymorphism/)
- [Java Scanner](https://www.wdbyte.com/java/scanner/)
- [Java 日期时间Date](https://www.wdbyte.com/java/date/)
- [Java 异常处理](https://www.wdbyte.com/java/exception/)
- [Java 枚举](https://www.wdbyte.com/java/enum/)
- [Java 注释](*https://www.wdbyte.com/java/comment/*)

### Java 数组
- [Java Array 数组](https://www.wdbyte.com/java/java-array/)
- [Java 多维数组](https://www.wdbyte.com/java/java-array-mul/)
- [Java Arrays 教程](https://www.wdbyte.com/java/arrays/)

### Java 面向对象
- [Java 继承](https://www.wdbyte.com/java/extends/)
- [Java 接口](https://www.wdbyte.com/java/interface/)
- [Java 抽象类](https://www.wdbyte.com/java/abstract/)
- [抽象类和接口的区别](https://www.wdbyte.com/java/abs-interface/)

### Java 集合
- [Java 集合框架](https://www.wdbyte.com/java/collection/)
- [Java 中使用 List ](https://www.wdbyte.com/java/list/)

### 代码测试
- [Java 断言 Assert 使用教程与最佳实践](https://www.wdbyte.com/java/assert/)

## 😃Java I/O 教程

- [Java 创建和写入文件](https://www.wdbyte.com/java/io/file-create-write/)
- [Java 读取文件](https://www.wdbyte.com/java/io/file-read/)
- [Java 追加内容到文件](https://www.wdbyte.com/java/io/file-append/)
- [Java 如何删除文件](https://www.wdbyte.com/java/io/file-delete/)

## 🎉 Java 进阶教程

- [ProcessBuilder API 使用教程](https://www.wdbyte.com/java/os/processbuilder/)
- [Java 热加载手动实现](https://www.wdbyte.com/2019/10/jvm/java-hotput/)
- [Jpackage - 制作无需预装 Java 环境的 Jar 可执行程序](https://www.wdbyte.com/java/jpackage/)

## 🌿 SpringBoot 2.x 教程

使用 **Spring Boot** 可以快速的创建一个基于Spring 的、独立的、生产级的应用程序,并且可以直接运行。Spring Boot 采用习惯性配置,整合大量 Spring 组建和第三方库,让你只需要少量的修改就可以轻松上手。

- [Spring Boot 系列(一)Spring Boot 入门篇](https://www.wdbyte.com/2019/01/springboot/springboot01-quick-start/)
- [Spring Boot 系列(二)Spring Boot 配置文件](https://www.wdbyte.com/2019/01/springboot/springboot01-config/)
- [Spring Boot 系列(三)Spring Boot 自动配置](https://www.wdbyte.com/2019/01/springboot/springboot03-auto-config/)
- [Spring Boot 系列(四)Spring Boot 日志框架](https://www.wdbyte.com/2019/01/springboot/springboot04-log/)
- [Spring Boot 系列(五)Web 开发之静态资源和模版引擎](https://www.wdbyte.com/2019/02/springboot/springboot-05-web-static-template/)
- [Spring Boot 系列(六)Web 开发之拦截器和三大组件](https://www.wdbyte.com/2019/02/springboot/springboot-06-web-filter-apo-webbase/)
- [Spring Boot 系列(七)Web 开发之异常错误处理机制剖析](https://www.wdbyte.com/2019/02/springboot/springboot-07-web-exception/)
- [Spring Boot 系列(八)动态 Banner 与图片转字符图案的手动实现](https://www.wdbyte.com/2019/02/springboot/springboot-08-banner/)
- [Spring Boot 系列(九)使用 Spring JDBC 和 Druid 数据源监控](https://www.wdbyte.com/2019/02/springboot/springboot-09-data-jdbc/)
- [Spring Boot 系列(十)使用 Spring data jpa 访问数据库](https://www.wdbyte.com/2019/03/springboot/springboot-10-data-jpa/)
- [Spring Boot 系列(十一)使用 Mybatis(自动生成插件) 访问数据库](https://www.wdbyte.com/2019/03/springboot/springboot-11-data-mybatis/)
- [Spring Boot 系列(十二)使用 Mybatis 集成 pagehelper 分页插件和 mapper 插件](https://www.wdbyte.com/2019/03/springboot/springboot-12-data-mybatis-page/)
- [Spring Boot 系列(十三)使用邮件服务](https://www.wdbyte.com/2019/03/springboot/springboot-13-email/)
- [Spring Boot 系列(十四)迅速启用 HTTPS 加密你的网站](https://www.wdbyte.com/2019/08/springboot/springboot-14-https/)
- [Spring Boot 系列(十五)如何编写自己的 Springboot starter](https://www.wdbyte.com/2019/11/springboot/springboot-15-my-starter/)
- [Spring Boot 系列(十六)你真的了解 Swagger 文档吗?](https://www.wdbyte.com/2019/11/springboot/springboot-16-web-swagger/)
- [Spring Boot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序](https://www.wdbyte.com/2019/12/springboot/springboot-17-admin/)
- [Spring Boot 系列(十八)最详细的 Spring Boot 多模块开发与排坑指南](https://www.wdbyte.com/2020/03/springboot/springboot-18-module/)
- [Spring Boot 系列(十九)SpringBoot 的多数据源配置](https://www.wdbyte.com/2020/12/springboot/springboot-multiple-datasource/)
- [Spring Boot 系列(二十)三分钟,Spring Boot、JPA 与 SQLite 的快速启动](https://www.wdbyte.com/springboot/sqlite/)

以上 Spring Boot 文章源码:[Github.com/niumoo/springboot](https://github.com/niumoo/springboot/)

## ☕ Java 新特性

Java 版本任你发,我用 Java 8 。但是多学点这种装x技巧总没错,何况有些新特性是**真香**。

- [Java 21 新功能介绍 (LTS)](https://www.wdbyte.com/java/java-21/)
- [Java 20 新功能介绍](https://www.wdbyte.com/java/java-20/)
- [Java 19 新功能介绍](https://www.wdbyte.com/java/java-19/)
- [Java 18 新功能介绍](https://www.wdbyte.com/java/java-18/)
- [Java 17 新功能介绍](https://www.wdbyte.com/java/java-17/)
- [Java 16 新功能介绍](https://www.wdbyte.com/java/java-16/)
- [Java 15 新功能介绍](https://www.wdbyte.com/java/java-15/)
- [Java 14 新特性介绍](https://www.wdbyte.com/java/java-14/)
- [Java 13 新特性介绍](https://www.wdbyte.com/java/java-13/)
- [Java 12 新特性介绍](https://www.wdbyte.com/2020/02/jdk/jdk12-feature/)
- [Java 11 新特性介绍](https://www.wdbyte.com/2020/03/jdk/jdk11-feature/)
- [Java 10 新特性介绍](https://www.wdbyte.com/2020/02/jdk/jdk10-feature/)
- [Java 9 新特性介绍](https://www.wdbyte.com/2020/02/jdk/jdk9-feature/)
- [Java 8 函数接口 UnaryOperator ](https://www.wdbyte.com/java8/java8-unaryoperaotr)
- [Java 8 函数接口 BiPredicate ](https://www.wdbyte.com/java8/java8-bipredicate)
- [Java 8 函数接口 BiFunction ](https://www.wdbyte.com/java8/java8-bifunction/)
- [Java 8 函数接口 Supplier ](https://www.wdbyte.com/java8/java8-supplier/)
- [Java 8 函数接口 Predicate ](https://www.wdbyte.com/java8/java8-predicate/)
- [Java 8 函数接口 Function ](https://www.wdbyte.com/java8/java8-function/)
- [Java 8 Lambda 和 Comparator 排序](https://www.wdbyte.com/java8/comparator/)
- [Java 8 新特性 - forEach 遍历](https://www.wdbyte.com/java8/java8-foreach/)
- [Java 8 新特性 - LocalDate、LocalDateTime 时间处理介绍](https://www.wdbyte.com/2019/10/jdk/jdk8-time/)
- [Java 8 新特性 - 使用 Optional优雅的处理空指针](https://www.wdbyte.com/2019/11/jdk/jdk8-optional/)
- [Java 8 新特性 - Lambda 表达式、函数接口了解一下](https://www.wdbyte.com/2019/11/jdk/jdk8-lambda/)
- [Java 8 新特性 - 超强的 Stream 流操作姿势还不学习一下](https://www.wdbyte.com/2019/11/jdk/jdk8-stream/)
- [Java 7 新特性 - 和低效 IO 说再见,Files,Paths,Path 文件操作介绍](https://www.wdbyte.com/2020/09/jdk/jdk7-file-pahs/)
- [Java 7 新特性 - 新特性 - 快来补一波 Java 7 语法特性](https://www.wdbyte.com/2020/01/jdk/jdk7-start/)

## 💻 Java 并发编程

- Java 线程创建与运行
- Java 线程通知与等待
- Java 线程休眠与让行
- Java 线程中断与停止
- Java 线程死锁
- Java 线程的上下文切换
- Java 守护线程与用户线程
- Java ThreadLocal
- 内存可见性、伪共享
- Java synchronized
- Java volatile
- 原子操作
- 排它锁、悲观锁、乐观锁、公平锁、非公平锁、独占锁、共享锁、重入锁、自旋锁
- ThreadLocalRandom
- LongAdder
- CopyOnWriteArrayList
- 锁的原理:LockSupport、ReentrantLock、ReentrantReadWriteLock
- 并发队列(Queue)
- 线程池 ThreadPoolExecutor
- 线程池 ScheduledThreadPoolExecutor
- 同步器 CountDownLatch、CyclicBarrier、Semaphore
- Java 并发编程注意事项

## 🕹 Java 虚拟机

- Java 内存模型
- 垃圾回收算法
- 垃圾收集器
- JVM 性能监控与故障处理
- JVM 性能调优
- Java 类文件结构
- JVM 类加载过程
- 前端编译 & 后端编译 & 优化
- 锁的自动优化升级策略

## 🔍 Java 性能分析
- [Java 中的5个代码性能提升技巧,最高提升9.5倍](https://www.wdbyte.com/java/code-5-tips.html)
- [JMC 使用教程](https://www.wdbyte.com/java/performance/jmc.html)
- [JFR 使用教程](https://www.wdbyte.com/java/performance/jfr.html)
- [使用 JMX 监控和管理 Java 程序](https://www.wdbyte.com/java/jmx.html)
- [Java 中的监控与管理原理概述](https://www.wdbyte.com/java/monitoring.html)
- [JMH-大厂是如何使用JMH进行Java代码性能测试的?必须掌握!](https://www.wdbyte.com/2020/08/develop/tool-jmh/)
- [Arthas - Java 线上问题定位处理的终极利器](https://www.wdbyte.com/2019/11/arthas/)
- [超好用的自带火焰图的 Java 性能分析工具 Async-profiler 了解一下](https://www.wdbyte.com/2019/12/async-profiler/)

## 🔬 JDK 源码分析

面试必备的 JDK 源码分析。探寻 JDK 大佬的设计思路。没有链接部分为后续更新内容,持续更新中。

- [集合 - CopyOnWriteArrayList 实现原理和源码分析](https://www.wdbyte.com/2020/10/jdk/src-copyonwritearraylist/)
- [集合 - ArrayList和LinkedList 实现原理和源码分析](https://www.wdbyte.com/2020/08/jdk/src-arraylist-linkedlist/)
- 集合 -「源码分析」Vector
- [集合 - ConcurrentHashMap 实现原理和源码分析](https://www.wdbyte.com/2020/04/jdk/concurrent-hashmap/)
- [集合 - HashMap 实现原理和源码分析](https://www.wdbyte.com/2020/03/jdk/hashmap/)
- 集合 - TreeMap 实现原理和源码分析
- 集合 - TreeSet 实现原理和源码分析
- 集合 - LinkedHashSet 实现原理和源码分析
- 基础类 - Object
- 基础类 - String
- 基础类 - StringBuffer & StringBuilder

## 认证授权
- [JSON Web Token 入门教程](https://www.wdbyte.com/auth/jwt/)

## 🧱 数据结构

- 数组
- 栈
- 队列
- 链表
- 树
- 哈希表
- 堆
- 图

## 🍔 数据库
- [SQLite 入门教程](https://www.wdbyte.com/db/sqlite/)

## 🧰 工具技巧

>“工欲善其事,必先利其器”
>出处:孔子《论语》

一款好用的工具,不仅可以装X,更可以让你事半功倍,准时下班。

- [使用 JCommander 解析命令行参数](https://www.wdbyte.com/tool/jcommander/)
- [Protobuf 教程](https://www.wdbyte.com/tool/protobuf/)
- [Apache HttpClient 5 使用详细教程](https://www.wdbyte.com/tool/httpclient5.html)
- [Jackson 解析 JSON 详细教程](https://www.wdbyte.com/tool/jackson.html)
- [Java 反编译工具的使用与对比分析](https://www.wdbyte.com/2021/05/java-decompiler/)
- [cURL 使用教程](https://www.wdbyte.com/2020/06/tool/curl/)
- [Java IDEA 使用教程](https://www.wdbyte.com/2019/10/develop/idea-skill/)
- [使用Apache Ant 进行Java web项目打包并部署至TOMCAT](https://www.wdbyte.com/2017/11/develop/tool-apache-ant/)
- [Linux配置Tomcat的单机多实例](https://www.wdbyte.com/2018/08/develop/install-tomcat-many-instance/)
- [Linux定时任务crontab的使用](https://www.wdbyte.com/2018/05/linux/linux-crontab/)
- [Manjaro Linux 入门使用教程](https://www.wdbyte.com/2020/04/linux/linux-manjaro/)
- [Ubuntu18 的超详细常用软件安装](https://www.wdbyte.com/2018/11/linux/start-ubuntu/)

## 💬 消息中间件

- [消息队列中间件(三)Kafka 入门指南](https://www.wdbyte.com/2018/12/io/mq-kafka-introduction/)
- [消息队列中间件(二)使用 ActiveMQ](https://www.wdbyte.com/2018/12/io/mq-activemq/)
- [消息队列中间件(一)介绍](https://www.wdbyte.com/2018/11/io/mq-introduction/)
- [IO通信模型(三)多路复用IO](https://www.wdbyte.com/2018/10/io/io3-nio/)
- [IO通信模型(二)同步非阻塞模式NIO(NonBlocking IO)](https://www.wdbyte.com/2018/10/io/io2-nio/)
- [IO通信模型(一)同步阻塞模式BIO(Blocking IO)](https://www.wdbyte.com/2018/10/io/io1-bio/)

## 🗺 贡献与建议

反馈地址:[https://github.com/niumoo/JavaNotes/issues](https://github.com/niumoo/JavaNotes/issues)

1. 内容难免存在笔误,一个错别字,一个语法错误,都是建议。
2. 文章中的错误和不足,或者不完善的地方都可以进行补充或者修改。
3. 我没有涉及到的知识点,也可以进行补充。

## 赏个 Star

[![Stargazers over time](https://starchart.cc/niumoo/JavaNotes.svg?background=%23FFFFFF&axis=%23333333&line=%23e76060)](https://starchart.cc/niumoo/JavaNotes)

### 公众号

可以关注「 **程序猿阿朗** 」公众号。即使查看更新的文章以及分享的干货。

等你很久

### 联系我

等不及了,还不添加我微信一起交个朋友。

交个朋友