2022年的某天,北大出版社联系到我,希望我能写一本Java语言教程,而我也很开心的接下了这个项目。本着服务于广大Java学习者的心态,在接下来的日子里,我努力策划、用心编排,写啊写啊。。。边写边向出版社提交文稿,不知掉了多少头发,终于用了一年时间把全部稿子提交给了出版社,结果,对方的回复是:
出版社方说写的太多了,估计会定价较高,怕没人买。接到这个消息后,我虽不至于感觉到五雷轰顶,但也感觉深深自己的心血被大大的打了折扣,我不想让自己的作品被“阉割”,于是我做出了一个决定,把本书以博客的形式发布到网上供读者观看学习,传送门如下:
在这本书中,我努力的把知识点讲得清晰易懂,在word文档中用“方正中等线简体”9.5号字体整整写了将近1000页,全书共分为三大篇25章,目录如下:
第一篇Java语法
第1章 初学者问题大集合
1.1 我能学会编程吗?
1.2 学会编程就可以成为软件工程师吗?
1.3 学了Java编程能应聘什么岗位?
1.4 Java程序是如何执行的?
1.5 Java开发环境的搭建
1.5.1下载并安装JDK
1.5.2配置环境变量
1.5.3测试开发环境
1.5.4配置环境变量的意义
1.5.5 JDK、JRE和JVM的关系
1.6 IntelliJ IDEA的下载与安装
1.7 编写第一个Java程序
1.8 Java程序初步释疑
第2章 Java程序世界初探
2.1 认识Java语言的变量
2.1.1 Java语言基础数据类型
2.1.2 变量的声明与使用
2.2 常量的使用
2.3 在程序中添加注释
2.4 实战第一仗 计算圆形面积
2.5 算术运算符
2.5.1 双目算术运算符
2.5.2 单目算术运算符
2.6 赋值运算符
2.6.1 普通赋值运算符
2.6.2 复合赋值运算符
2.7关系运算符及条件语句
2.8条件运算符
2.9逻辑运算符
2.9.1 双目逻辑运算符
2.9.2 单目逻辑运算符
2.10 多重if...else语句
2.11 switch结构
第3章 数组与循环
3.1 数组的创建与使用
3.2 多维数组
3.3 while循环
3.4 for循环
3.4.1 普通for循环
3.4.2 增强型for循环
3.5 do...while循环
3.6嵌套循环
3.7 break与continue关键字
3.7.1 break关键字
3.7.2 continue关键字
3.8 数组与循环经典例题
3.8.1求整数位数
3.8.2串数求和
3.8.3猴子吃桃
3.8.4找到最大值
3.8.5数字排列
3.8.6打印杨辉三角
3.8.7冒泡排序
3.8.8猴子分桃
第4章 类与对象
4.1类的定义与对象的创建
4.1.1类的定义
4.1.2 对象的创建
4.2方法的定义
4.2.1如何定义方法
4.2.2方法的详细说明
4.3方法的重载
4.3.1方法重载的概念及实现原理
4.3.2 方法重载的技术细节
4.4构造方法
4.5 this关键字及其用法
4.5.1this关键字修饰属性
4.5.2this关键字修饰方法
4.5.3this关键字表示构造方法
第5章 类的继承
5.1继承的概念与实现方式
5.1.1什么是继承
5.1.2继承的实现方式
5.1.3继承机制详解
5.2子类对象的构建过程
5.3方法的重写
5.3.1方法重写的意义及实现方式
5.3.2方法重写的技术细节
5.4 属性的屏蔽
5.5对象和引用
5.5.1引用的概念和作用
5.5.2父类的引用指向子类的对象
5.6 instanceof运算符
第6章 类的高级特性
6.1static关键字的使用
6.1.1 静态属性
6.1.2 静态方法
6.1.3 静态块
6.2包的创建和使用
6.2.1创建包
6.2.2引入其他包中的类
6.3访问修饰符
6.3.1设置属性和方法的访问度
6.3.2设置类的访问度
6.4抽象类
6.4.1抽象类的意义及定义方式
6.4.2抽象类的详细说明
6.5接口
6.5.1接口的定义
6.5.2接口的特点及用途
6.6 面向对象三大特征
第7章 Java的异常处理
7.1 异常的概念及处理方式
7.1.1 异常的概念
7.1.2 异常的处理方式
7.2异常的分类及处理方法
7.2.1异常的分类
7.2.2处理多种异常
7.3异常的嵌套处理
7.4throw与throws关键字
7.4.1throw关键字的使用
7.4.2throws关键字的使用
7.5自定义异常
第8章 Java高级语法
8.1 数制及数制间的转换
8.1.1 各种数制的表示方式
8.1.2 各种数制间的转换
8.2 补码
8.3 位运算符
8.4 位运算经典应用举例
8.4.1判断整数的奇偶性
8.4.2求整数绝对值
8.4.3 不借助中间变量交换两个变量的值
8.4.4 寻找不成对的元素
8.4.5求集合的所有子集
8.5 内部类
8.5.1 成员内部类
8.5.2 局部内部类
8.6 匿名类
8.7 枚举
8.7.1 枚举的概念及定义方式
8.7.2 枚举的常用方法
8.7.3枚举的构造方法
8.7.4枚举的继承问题
8.8 Java可变参数
8.9静态导入技术
8.10注解
8.11泛型
8.11.1 泛型简介
8.11.2深入学习泛型
8.11.3有界类型
8.11.4 范型通配符
8.11.5 范型方法
8.11.6 范型接口
8.11.7 范型与类的继承
8.11.8擦拭及相关问题
8.12 Lambda表达式
8.12.1 认识Lambda表达式
8.12.2 简化Lambda表达式
8.12.3方法引用
第二篇API应用
第9章 字符串
9.1 String类的几个基本常识
9.2 字符串常用操作
9.2.1 比较字符串的值
9.2.2判断空字符串和空白字符
9.2.3搜索字符串
9.2.4替换子字符串
9.2.5截取字符串
9.2.6去除空白字符
9.2.7拆分字符串
9.2.8拼接字符串
9.2.9字符串的其他操作
9.3 String类对象的存储方式
9.4 StringBuffer和StringBuilder
9.5字符编码常识
第10章 日期与时间
10.1 Date类的使用
10.1.1创建Date类对象
10.1.2 格式化输出Date类对象
10.1.3 Date类获得时间分量
10.2 Calendar类的使用
10.2.1 创建Calendar类对象
10.2.2 Calendar类获得时间分量
10.2.3 日期时间的计算
10.3 Java8新日期时间系统简介
10.4 LocalDate、LocalTime和LocalDateTime
10.4.1 对象的创建
10.4.2获取时间分量
10.4.3修改时间分量
10.4.4日期时间的比较
10.4.4日期时间的计算
10.5 Period与Duration
10.5.1创建Period类对象
10.5.2获取和修改Period对象时间分量
10.5.3 Period对象的相关计算
10.5.4创建Duration对象
10.5.5获取和修改Duration对象时间分量
10.5.6 Duration对象的相关计算
10.6 ZoneId、ZoneRegion和ZoneOffset
10.6.1 ZoneRegion类
10.6.2 ZoneOffset类
10.7 ZonedDateTime与OffsetDateTime
10.7.1 对象的创建
10.7.2 日期时间的转换与比较
10.8格式化日期时间对象
10.9 日期时间对象的转换
第11章 Java实战常用类
11.1 包装类
11.1.1装箱与拆箱
11.1.2字符串转为基础数据类型
11.1.3包装类对象与基础数据的比较
11.2 BigInteger类和BigDecimal类
11.2.1创建BigInteger类对象
11.2.2 BigInteger类对象的相关运算
11.2.3 BigInteger类对象转换为基础类型数据
11.2.4 使用BigDecimal类处理浮点数计算精度问题
11.2.5 使用BigDecimal类处理浮点数保留位数问题
11.3 Math类
11.3.1 利用三角函数求π值
11.3.2实现求任意对数值
11.3.3 实现浮点数的舍入操作
11.4 Random类
11.4.1 随机数生成方法
11.4.2 随机数的生成原理
11.5 UUID类
11.6 Object类
11.6.1 getClass()方法
11.6.2 toString()方法
11.6.3 equals()方法
11.6.4 hashCode()方法
11.6.5 clone()方法
11.7 Objects类
11.7.1 防止空指针异常的方法
11.7.2 数据验证的方法
11.8 Arrays类
11.9 Comparable接口和Comparator接口
11.10 Locale类
11.11 NumberFormat类和DecimalFormat类
11.12 Formatter类
11.13 ResourceBundle类和MessageFormat类
第12章 文件与I/O流
12.1 Java的文件管理
12.1.1 File类
12.1.2目录
12.2流
12.2.1什么是流
12.2.2流的分类
12.2.3标准输入、输入流
12.3字节流的使用
12.3.1 InputStream类与OutputStream类
12.3.2 ByteArrayInputStream类与ByteArrayOutputStream类
12.3.3 FileInputStream类和FileOutputStream类
12.3.4 DataInputStream类与DataOutputStream 类
12.4对象序列化
12.4.1什么是对象序列化
12.4.2对象序列化的用途
12.5字符流的使用
12.5.1 Reader类和Writer类
12.5.2 FileReader类和FileWriter类
12.5.3 BufferedReader类和BufferedWriter类
12.5.4 PrintWriter类
12.6 InputStreamReader类和OutputStreamWriter类
第13章 集合
13.1 Java集合概述
13.1.1 为什么要使用集合类
13.1.2 集合框架
13.1.3 Collection接口
13.2 List集合
13.2.1 ArrayList类和Vector类
13.2.2 Stack类
13.2.3 固定长度的List
13.3 Map集合
13.3.1 HashMap类
13.3.2 Hashtable类和Properties类
13.3.3Linked HashMap类
13.4 Set集合
13.4.1 HashSet类
13.4.2 LinkedHashSet类
13.4.3TreeSet类
13.4.5EnumSet类
13.5 Queue集合
13.5.1 PriorityQueue类
13.5.2Deque接口和ArrayDeque类
13.5.3LinkedList
第14章 多线程
14.1线程概述
14.1.1线程和进程
14.1.2多线程的优势
14.2线程的创建和启动
14.2.1继承Thread类创建线程
14.2.2实现Runnable接口创建线程
14.2.3使用Callable和Future创建线程
14.3线程的生命周期
14.3.1新建和就绪状态
14.3.2运行和阻塞状态
14.3.3线程死亡
14.4控制线程
14.4.1等待其他线程结束
14.4.2后台线程
14.4.3线程睡眠
14.4.4改变线程优先级
14.5线程同步
14.5.1什么是同步
14.5.2使用同步方法
14.5.3同步语句
14.6线程间的通信
14.6.1传统线程通信
14.6.2使用Condition控制线程通信
14.6.3使用BlockingQueue控制线程通信
14.6.4死锁
14.7线程池
14.8 ThreadLocal类
第15章 网络编程
15.1网络编程基础知识
15.1.1网络基础知识
15.1.2IP地址和端口号
15.2网络编程常用类
15.2.1InetAddress类
15.2.2URLDecoder类和URLEncoder类
15.2.3URL类、URLConnection类和URLPermission类
15.3基于TCP协议的网络编程
15.3.1TCP协议简介
15.3.2创建TCP服务器端
15.3.3使用Socket完成通信
15.4基于UDP协议的网络编程
15.4.1UDP协议简介
15.4.2发送和接收数据
15.4.3多点广播
第16章正则表达式
16.1正则表达式入门
16.1.1自定义通配符
16.1.2还原特殊符号
16.1.3定义出现次数
16.2正则表达式高级语义
16.2.1贪婪模式与非贪婪模式
16.2.2定位符的使用
16.2.3正反向预搜索
16.2.4反向引用
16.3Pattern类和匹配模式
16.4Matcher类
16.4.1Matcher类简介
16.4.2Matcher类的匹配方法
16.4.3Matcher类的替换方法
16.4.4设置Matcher搜索范围
16.4.5重置Matcher类对象
第17章MySQL数据库基础
17.1数据库简介
17.1.1使用数据库的必要性
17.1.2常用数据库
17.1.2数据库基本概念
17.2数据库管理
17.2.1 创建数据库
17.2.2 重命名数据库
17.2.3 删除数据库
17.3数据库表管理
17.3.1 MySQL数据类型
17.3.2创建数据库表
17.3.3修改数据库表
17.3.4查看数据库表属性
17.3.5删除数据库表
17.4数据管理
17.4.1向表中插入数据
17.4.2更新表中数据
17.4.3删除表中数据
17.5数据查询
17.5.1 基本数据查询
17.5.2 指定条件的查询
17.5.3 对查询结果排序
17.5.4 聚合函数
17.5.5 连接查询
17.5.6 子查询
17.5.7 联合查询
第18章JDBC
18.1JDBC简介
18.2JDBC编程
18.2.1JDBC常用接口和类简介
18.2.2JDBC编程的基本步骤
18.2.3使用JDBC完成数据查询
18.2.4 ResultSet的类型和特性
18.2.5 RowSet接口
18.2.6 PreparedStatement接口
18.2.7 DML语句的执行
18.2.8使用execute()方法执行SQL语句
18.2.9 JDBC编程的优化方案
18.3事务处理
18.3.1事务的概念和MySQL事务支持
18.3.2JDBC的事务支持
18.3.3批量更新
18.4数据库连接池
18.4.1DBCP数据源
18.4.2C3P0数据源
第19章类的加载与反射
19.1类的加载、连接和初始化
19.1.1类的加载、
19.1.2类的连接
19.1.3类的初始化
19.1.2类加载器
19.2反射
19.2.1什么是反射
19.2.2方法参数反射
19.2.3通过反射查看类的信息
19.2.4利用反射生成并操作对象
19.3反射与注解
19.3.1定义注解
19.3.2提取注解信息
19.3.3编译时处理注解
第20章Java Swing
20.1 Swing技术简介
20.2窗体的创建
20.3布局管理器
20.4布局管理器
20.4.1流式布局
20.4.2边框布局管理器
20.4.3网格布局
20.4.4卡片布局
20.4.5空布局
20.5事件处理与监听器
20.5.1事件处理基本原理
20.5.2监听器简介
20.5.3监听器的实现方式
20.5.4适配器类
20.6常用组件
20.6.1标签组件JLabel
20.6.2文本框JTextField和密码框JPasswordField
20.6.3文本区JTextArea
20.6.4复选框JCheckBox
20.6.5单选按钮JRadioButton
20.6.6 进度条JProgressBar
20.6.7列表框JList
20.6.8组合框JComBox
20.6.9表格JTable
20.6.10树形组件JTree
20.7中间容器
20.7.1面板JPanel
20.7.2滚动面板JScollPane
20.7.3选项板JtabbedPane
20.7.4工具栏JToolBar
20.8对话框
20.8.1消息对话框
20.8.2确认对话框
20.8.3内部信息对话框
20.8.4自定义对话框
20.9选择器
20.9.1文件选择器JFileChooser
20.9.2颜色选择器JColorChooser
第三篇 项目实战
第21章 万年历
21.1万年历项目简介
21.1.1功能简介
21.1.2项目结构简介
21.2功能实现
21.2.1初始化组件
21.2.2当前时间的刷新
21.2.3切换时区
21.2.4显示日历
21.2.5显示节日
21.2.6切换日期
21.3项目完整代码
第22章 记事本
22.1记事本项目简介
22.1.1功能简介
22.1.2工程结构简介
22.2功能实现
22.2.1初始化菜单
22.2.2保存功能
22.2.3打开功能
22.2.4剪切、复制和粘贴
22.2.5打印功能
22.2.6查找功能
22.2.7设置字体功能
22.2.8退出记事本
22.3项目完整代码
第23章 斗地主游戏
23.1斗地主游戏简介
23.1.1功能简介
23.1.2工程结构简介
23.2功能实现
23.2.1登录窗口和主窗口
23.2.2接收客户端上线消息
23.2.3发牌
23.2.4解析消息
23.2.5显示接收到的牌
23.2.6按大小排列牌
23.2.7显示抢地主倒计时
23.2.8显示出牌按钮并开始倒计时
23.2.9分发出牌消息
23.2.10判断牌型和比较出牌大小
23.2.11判断玩家输赢
23.3项目完整代码
第24章 学生信息管理系统
24.1学生信息管理系统简介
24.1.1功能简介
24.1.2工程结构简介
24.1.3数据库表设计
24.2功能实现
23.2.1显示学生信息
23.2.2新增学生信息
23.2.3修改学生信息
23.2.4删除学生信息
24.3项目完整代码
第25章 企业进销存管理系统
25.1进销存管理系统简介
25.1.1功能简介
25.1.2工程结构简介
25.1.3数据库表设计
25.2功能实现
25.2.1登录模块
25.2.2系统主窗体设计
25.2.3进货单模块
25.2.4销售单模块
25.2.5库存盘点功能
25.3项目完整代码
该文字版教程还配有更详细的视频讲解,小伙伴们可以 点击这里观看,希望对广大学习者有所帮助。