2022年的某天,北大出版社联系到我,希望我能写一本Java语言教程,而我也很开心的接下了这个项目。本着服务于广大Java学习者的心态,在接下来的日子里,我努力策划、用心编排,写啊写啊。。。边写边向出版社提交文稿,不知掉了多少头发,终于用了一年时间把全部稿子提交给了出版社,结果,对方的回复是:

自荐一本Java良心教程_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项目完整代码

该文字版教程还配有更详细的视频讲解,小伙伴们可以 点击这里观看,希望对广大学习者有所帮助。