Java 教程
...大约 13 分钟
JavaTutorial
☕ java-tutorial 是一个 Java 教程,汇集一个老司机在 Java 领域的十年积累。
- 🔁 项目同步维护:Github | Gitee
- 📖 电子书阅读:Github Pages | Gitee Pages
说明:
- 下面的内容清单中,凡是有 📚 标记的技术,都已整理成详细的教程。
- 部分技术因为可以应用于不同领域,所以可能会同时出现在不同的类别下。
📖 内容
JavaCore
Java 基础特性
- Java 基础语法特性
- Java 基本数据类型
- Java 面向对象
- Java 方法
- Java 数组
- Java 枚举
- Java 控制语句
- Java 异常
- Java 泛型
- Java 反射
- Java 注解
- Java String 类型
Java 高级特性
- Java 正则 - 关键词:Pattern、Matcher、捕获与非捕获、反向引用、零宽断言、贪婪与懒惰、元字符、DFA、NFA
- Java 编码和加密 - 关键词:Base64、消息摘要、数字签名、对称加密、非对称加密、MD5、SHA、HMAC、AES、DES、DESede、RSA
- Java 国际化 - 关键词:Locale、ResourceBundle、NumberFormat、DateFormat、MessageFormat
- Java JDK8 - 关键词:Stream、lambda、Optional、@FunctionalInterface
- Java SPI - 关键词:SPI、ClassLoader
- JavaAgent
Java 容器
- Java 容器简介 - 关键词:泛型、Iterable、Iterator、Comparable、Comparator、Cloneable、fail-fast
- Java 容器之 List - 关键词:List、ArrayList、LinkedList
- Java 容器之 Map - 关键词:Map、HashMap、TreeMap、LinkedHashMap、WeakHashMap
- Java 容器之 Set - 关键词:Set、HashSet、TreeSet、LinkedHashSet、EmumSet
- Java 容器之 Queue - 关键词:Queue、Deque、ArrayDeque、LinkedList、PriorityQueue
- Java 容器之 Stream
Java IO
- Java I/O 之 简介 - 关键词:BIO、NIO、AIO
- Java I/O 之 BIO - 关键词:BIO、InputStream、OutputStream、Reader、Writer、File、Socket、ServerSocket
- Java I/O 之 NIO - 关键词:NIO、Channel、Buffer、Selector、多路复用
- Java I/O 之序列化 - 关键词:Serializable、serialVersionUID、transient、Externalizable
Java 并发
- Java 并发简介 - 关键词:并发、线程、安全性、活跃性、性能、死锁、活锁
- Java 并发之内存模型 - 关键词:JMM、Happens-Before、内存屏障、volatile、synchronized、final、指令重排序
- Java 并发之线程 - 关键词:Thread、Runnable、Callable、Future、FutureTask、线程生命周期
- Java 并发之锁 - 关键词:锁、Lock、Condition、ReentrantLock、ReentrantReadWriteLock、StampedLock
- Java 并发之无锁 - 关键词:CAS、ThreadLocal、Immutability、Copy-on-Write
- Java 并发之 AQS - 关键词:AQS、独占锁、共享锁
- Java 并发之容器 - 关键词:ConcurrentHashMap、CopyOnWriteArrayList
- Java 并发之线程池 - 关键词:Executor、ExecutorService、ThreadPoolExecutor、Executors
- Java 并发之同步工具 - 关键词:Semaphore、CountDownLatch、CyclicBarrier
- Java 并发之分工工具 - 关键词:CompletableFuture、CompletionStage、ForkJoinPool
Java 虚拟机
- Java 虚拟机简介
- Java 虚拟机之内存区域 - 关键词:
程序计数器
、虚拟机栈
、本地方法栈
、堆
、方法区
、运行时常量池
、直接内存
、OutOfMemoryError
、StackOverflowError
- Java 虚拟机之垃圾收集 - 关键词:
GC Roots
、Serial
、Parallel
、CMS
、G1
、Minor GC
、Full GC
- Java 虚拟机之字节码 - 关键词:
bytecode
、asm
、javassist
- Java 虚拟机之类加载 - 关键词:
ClassLoader
、双亲委派
- Java 虚拟机之工具 - 关键词:
jps
、jstat
、jmap
、jstack
、jhat
、jinfo
、jconsole
、jvisualvm
、MAT
、JProfile
、Arthas
- Java 虚拟机之故障处理 - 关键词:
CPU
、内存
、磁盘
、网络
、GC
- Java 虚拟机之调优 - 关键词:
配置
、调优
JavaEE
JavaWeb
Java 服务器
Tomcat 和 Jetty 都是 Java 比较流行的轻量级服务器。
Nginx 是目前最流行的反向代理服务器,也常用于负载均衡。
Java 软件
Java 构建
Java 项目需要通过 构建工具 来管理项目依赖,完成编译、打包、发布、生成 JavaDoc 等任务。
- 目前最主流的构建工具是 Maven,它的功能非常强大。
- Gradle 号称是要替代 Maven 等构件工具,它的版本管理确实简洁,但是需要学习 Groovy,学习成本比 Maven 高。
- Ant 功能比 Maven 和 Gradle 要弱,现代 Java 项目基本不用了,但也有一些传统的 Java 项目还在使用。
Java IDE
自从有了 IDE,写代码从此就告别了刀耕火种的蛮荒时代。
- Eclipse 是久负盛名的开源 Java IDE,我的学生时代一直使用它写 Java。
- 曾经抗拒从转 Intellij Idea ,但后来发现真香,不得不说,确实是目前最优秀的 Java IDE。
- 你可以在 vscode 中写各种语言,只要安装相应插件即可。如果你的项目中使用了很多种编程语言,又懒得在多个 IDE 之间切换,那么就用 vscode 来一网打尽吧。
Java 监控诊断
监控/诊断 工具主要用于 Java 应用的运维。通过采集、分析、存储、可视化应用的有效数据,帮助开发者、使用者快速定位问题,找到性能瓶颈。
Java 工具
Java IO
JavaBean 工具
Java 模板引擎
Java 测试工具
其他
Java 框架
Spring
综合
核心
- Spring Bean
- Spring IoC
- Spring 依赖查找
- Spring 依赖注入
- Spring IoC 依赖来源
- Spring Bean 作用域
- Spring Bean 生命周期
- Spring 配置元数据
- Spring AOP
- Spring 资源管理
- Spring 校验
- Spring 数据绑定
- Spring 类型转换
- Spring EL 表达式
- Spring 事件
- Spring 国际化
- Spring 泛型处理
- Spring 注解
- Spring Environment 抽象
- SpringBoot 教程之快速入门
- SpringBoot 之属性加载
- SpringBoot 之 Profile
数据
- Spring 之数据源
- Spring 之 JDBC
- Spring 之事务
- Spring 之 JPA
- Spring 集成 Mybatis
- Spring 访问 Redis
- Spring 访问 MongoDB
- Spring 访问 Elasticsearch
Web
IO
集成
其他
ORM
安全
Java 领域比较流行的安全框架就是 shiro 和 spring-security。
shiro 更为简单、轻便,容易理解,能满足大多数基本安全场景下的需要。
spring-security 功能更丰富,也比 shiro 更复杂。值得一提的是由于 spring-security 是 spring 团队开发,所以集成 spring 和 spring-boot 框架更容易。
IO
Java 中间件
缓存
缓存可以说是优化系统性能的第一手段,在各种技术中都会有缓存的应用。
如果想深入学习缓存,建议先了解一下 缓存基本原理,有助于理解缓存的特性、原理,使用缓存常见的问题及解决方案。
流量控制
大数据
大数据技术点以归档在:bigdata-tutorial
📚 资料
- 书籍
- Java 基础
- 《Java 编程思想》 - Thinking in java,典中典!由于成书较早,部分内容已经多少有点过时
- 《Java 核心技术 卷 I 开发基础》 - 第 12 版,涵盖 Java 17 的新特性
- 《Java 核心技术 卷 II 高级特性》 - 第 12 版,涵盖 Java 17 的新特性
- 《Effective Java》 - 第 3 版,涵盖 Java 9 的新特性
- 《Head First Java》 - 图文并茂,对新手非常友好的入门级教程
- 《疯狂 Java 讲义》 - 入门级教程
- Java 并发
- 《Java 并发编程实战》 - 深入浅出地介绍 Java 线程和并发
- 《Java 并发编程的艺术》
- Java 虚拟机
- 《深入理解 Java 虚拟机》 - 第 3 版,国内最好的 JVM 书籍
- Java IO
- 其他
- Java 基础
- 教程、社区
- Runoob Java 教程
- 极客时间教程 - Java 核心技术面试精讲 - 极客时间教程——从面试官视角梳理如何解答常见 Java 面试问题
- 极客时间教程 - Java 并发编程实战 - 极客时间教程——图文并茂,系统性讲解并发编程知识
- 拉勾教育教程 - Java 并发编程 78 讲 - 拉勾教育教程——针对并发场景问题,讲解的通俗易懂
- 极客时间教程 - Java 业务开发常见错误 100 例 - 极客时间教程——基于 Java 生产环境的真实案例,讲解“避坑”的手段,很硬核
- 极客时间教程 - Java 性能调优实战 - 极客时间教程——覆盖 80% 以上 Java 应用调优场景
- 极客时间教程 - 深入拆解 Java 虚拟机 - 极客时间教程
- CS-Notes - Github 上的 Java 基础级面试教程,行文清晰简洁
- JavaGuide - Github 上的 Java 面试教程,Java 基础部分讲解较为细致
- advanced-java - Github 上的 Java 面试教程,分布式部分从面试官视角讲解核心考察点
- java-design-patterns - Github 上的 Java 版设计模式教程
- Java - Github 上的 Java 算法教程
🚪 传送
◾ 💧 钝悟的 IT 知识图谱 ◾
Powered by Waline v2.15.7