Java教程
Python教程
JavaScript教程
SQL教程
手写Spring
手写Tomcat
区块链教程
Git教程
Makefile教程
博客
廖雪峰的官方网站
Java教程
Python教程
JavaScript教程
SQL教程
手写Spring
手写Tomcat
区块链教程
Git教程
Makefile教程
博客
Java教程
Python教程
JavaScript教程
SQL教程
手写Spring
手写Tomcat
区块链教程
Git教程
Makefile教程
博客
Java教程
1.
简介
2.
快速入门
2.1.
Java历史
2.2.
搭建开发环境
2.2.1.
安装JDK
2.2.2.
第一个Java程序
2.2.3.
使用IDE
2.3.
Java程序基础
2.3.1.
Java程序基本结构
2.3.2.
变量和数据类型
2.3.3.
整数运算
2.3.4.
浮点数运算
2.3.5.
布尔运算
2.3.6.
字符和字符串
2.3.7.
数组类型
2.4.
流程控制
2.4.1.
输入和输出
2.4.2.
if条件判断
2.4.3.
switch多重选择
2.4.4.
while循环
2.4.5.
do while循环
2.4.6.
for循环
2.4.7.
break和continue
2.5.
数组操作
2.5.1.
遍历数组
2.5.2.
数组排序
2.5.3.
多维数组
2.5.4.
命令行参数
3.
面向对象编程
3.1.
面向对象基础
3.1.1.
方法
3.1.2.
构造方法
3.1.3.
方法重载
3.1.4.
继承
3.1.5.
多态
3.1.6.
抽象类
3.1.7.
接口
3.1.8.
静态字段和静态方法
3.1.9.
包
3.1.10.
作用域
3.1.11.
内部类
3.1.12.
classpath和jar
3.1.13.
class版本
3.1.14.
模块
3.2.
Java核心类
3.2.1.
字符串和编码
3.2.2.
StringBuilder
3.2.3.
StringJoiner
3.2.4.
包装类型
3.2.5.
JavaBean
3.2.6.
枚举类
3.2.7.
记录类
3.2.8.
BigInteger
3.2.9.
BigDecimal
3.2.10.
常用工具类
4.
异常处理
4.1.
Java的异常
4.2.
捕获异常
4.3.
抛出异常
4.4.
自定义异常
4.5.
NullPointerException
4.6.
使用断言
4.7.
使用JDK Logging
4.8.
使用Commons Logging
4.9.
使用Log4j
4.10.
使用SLF4J和Logback
5.
反射
5.1.
Class类
5.2.
访问字段
5.3.
调用方法
5.4.
调用构造方法
5.5.
获取继承关系
5.6.
动态代理
6.
注解
6.1.
使用注解
6.2.
定义注解
6.3.
处理注解
7.
泛型
7.1.
什么是泛型
7.2.
使用泛型
7.3.
编写泛型
7.4.
擦拭法
7.5.
extends通配符
7.6.
super通配符
7.7.
泛型和反射
8.
集合
8.1.
Java集合简介
8.2.
使用List
8.3.
编写equals方法
8.4.
使用Map
8.5.
编写hashCode方法
8.6.
使用EnumMap
8.7.
使用TreeMap
8.8.
使用Properties
8.9.
使用Set
8.10.
使用Queue
8.11.
使用PriorityQueue
8.12.
使用Deque
8.13.
使用Stack
8.14.
使用Iterator
8.15.
使用Collections
9.
IO
9.1.
File对象
9.2.
InputStream
9.3.
OutputStream
9.4.
Filter模式
9.5.
操作Zip
9.6.
读取classpath资源
9.7.
序列化
9.8.
Reader
9.9.
Writer
9.10.
PrintStream和PrintWriter
9.11.
使用Files
10.
日期与时间
10.1.
基本概念
10.2.
Date和Calendar
10.3.
LocalDateTime
10.4.
ZonedDateTime
10.5.
DateTimeFormatter
10.6.
Instant
10.7.
最佳实践
11.
单元测试
11.1.
编写JUnit测试
11.2.
使用Fixture
11.3.
异常测试
11.4.
条件测试
11.5.
参数化测试
12.
正则表达式
12.1.
正则表达式简介
12.2.
匹配规则
12.3.
复杂匹配规则
12.4.
分组匹配
12.5.
非贪婪匹配
12.6.
搜索和替换
13.
加密与安全
13.1.
编码算法
13.2.
哈希算法
13.3.
BouncyCastle
13.4.
Hmac算法
13.5.
对称加密算法
13.6.
口令加密算法
13.7.
密钥交换算法
13.8.
非对称加密算法
13.9.
签名算法
13.10.
数字证书
14.
多线程
14.1.
多线程基础
14.2.
创建新线程
14.3.
线程的状态
14.4.
中断线程
14.5.
守护线程
14.6.
线程同步
14.6.1.
同步方法
14.6.2.
死锁
14.6.3.
使用wait和notify
14.6.4.
使用ReentrantLock
14.6.5.
使用Condition
14.6.6.
使用ReadWriteLock
14.6.7.
使用StampedLock
14.6.8.
使用Semaphore
14.6.9.
使用Concurrent集合
14.6.10.
使用Atomic
14.7.
使用线程池
14.8.
使用Future
14.9.
使用CompletableFuture
14.10.
使用ForkJoin
14.11.
使用ThreadLocal
14.12.
使用虚拟线程
15.
Maven基础
15.1.
Maven介绍
15.2.
依赖管理
15.3.
构建流程
15.4.
使用插件
15.5.
模块管理
15.6.
使用mvnw
15.7.
发布Artifact
16.
网络编程
16.1.
网络编程基础
16.2.
TCP编程
16.3.
UDP编程
16.4.
发送Email
16.5.
接收Email
16.6.
HTTP编程
16.7.
RMI远程调用
17.
XML与JSON
17.1.
XML简介
17.2.
使用DOM
17.3.
使用SAX
17.4.
使用Jackson
17.5.
使用JSON
18.
JDBC编程
18.1.
JDBC简介
18.2.
JDBC查询
18.3.
JDBC更新
18.4.
JDBC事务
18.5.
JDBC批处理
18.6.
JDBC连接池
19.
函数式编程
19.1.
Lambda基础
19.2.
方法引用
19.3.
使用Stream
19.3.1.
创建Stream
19.3.2.
使用map
19.3.3.
使用filter
19.3.4.
使用reduce
19.3.5.
输出集合
19.3.6.
其他操作
20.
设计模式
20.1.
创建型模式
20.1.1.
工厂方法
20.1.2.
抽象工厂
20.1.3.
生成器
20.1.4.
原型
20.1.5.
单例
20.2.
结构型模式
20.2.1.
适配器
20.2.2.
桥接
20.2.3.
组合
20.2.4.
装饰器
20.2.5.
外观
20.2.6.
享元
20.2.7.
代理
20.3.
行为型模式
20.3.1.
责任链
20.3.2.
命令
20.3.3.
解释器
20.3.4.
迭代器
20.3.5.
中介
20.3.6.
备忘录
20.3.7.
观察者
20.3.8.
状态
20.3.9.
策略
20.3.10.
模板方法
20.3.11.
访问者
21.
Web开发
21.1.
Web基础
21.2.
Servlet入门
21.3.
Servlet开发
21.4.
Servlet进阶
21.4.1.
重定向与转发
21.4.2.
使用Session和Cookie
21.5.
JSP开发
21.6.
MVC开发
21.7.
MVC高级开发
21.8.
使用Filter
21.8.1.
修改请求
21.8.2.
修改响应
21.9.
使用Listener
21.10.
部署
22.
Spring开发
22.1.
IoC容器
22.1.1.
IoC原理
22.1.2.
装配Bean
22.1.3.
使用Annotation配置
22.1.4.
定制Bean
22.1.5.
使用Resource
22.1.6.
注入配置
22.1.7.
使用条件装配
22.2.
使用AOP
22.2.1.
装配AOP
22.2.2.
使用注解装配AOP
22.2.3.
AOP避坑指南
22.3.
访问数据库
22.3.1.
使用JDBC
22.3.2.
使用声明式事务
22.3.3.
使用DAO
22.3.4.
集成Hibernate
22.3.5.
集成JPA
22.3.6.
集成MyBatis
22.3.7.
设计ORM
22.4.
开发Web应用
22.4.1.
使用Spring MVC
22.4.2.
使用REST
22.4.3.
集成Filter
22.4.4.
使用Interceptor
22.4.5.
处理CORS
22.4.6.
国际化
22.4.7.
异步处理
22.4.8.
使用WebSocket
22.5.
集成第三方组件
22.5.1.
集成JavaMail
22.5.2.
集成JMS
22.5.3.
使用Scheduler
22.5.4.
集成JMX
23.
Spring Boot开发
23.1.
第一个Spring Boot应用
23.2.
使用开发者工具
23.3.
打包Spring Boot应用
23.4.
使用Actuator
23.5.
使用Profiles
23.6.
使用Conditional
23.7.
加载配置文件
23.8.
禁用自动配置
23.9.
添加Filter
23.10.
集成第三方组件
23.10.1.
集成Open API
23.10.2.
访问Redis
23.10.3.
集成Artemis
23.10.4.
集成RabbitMQ
23.10.5.
集成Kafka
24.
Spring Cloud开发
24.1.
项目架构设计
24.2.
搭建项目框架
24.3.
设计交易引擎
24.3.1.
设计资产系统
24.3.2.
设计订单系统
24.3.3.
设计撮合引擎
24.3.4.
设计清算系统
24.3.5.
完成交易引擎
24.4.
设计定序系统
24.5.
设计API系统
24.6.
设计行情系统
24.7.
设计推送系统
24.8.
编写UI
24.9.
项目总结
异常处理
廖雪峰
资深软件开发工程师,业余马拉松选手。
程序运行的时候,经常会发生各种错误。
比如,使用Excel的时候,它有时候会报错:
本章我们讨论如何在Java程序中处理各种异常情况。
常用工具类
Java的异常
${user_name} @ ${created_at} ${delete_action}
${content}
${comment_replies} ${comment_action} ${comment_reply_form}
Write
Write
Preview
Preview
Post
Comments
Loading comments...
Fail to load comments. Try
reload
.
Comments loaded.
To post a comment, please
Sign In
Hello,
.
Sign Out