本文目录导读:

- 第一阶段:Java基础语法与面向对象(预计1-2周)
- 第二阶段:核心API与异常处理(预计1周)
- 第三阶段:项目实战——图书管理系统(预计2-3周)
- 第四阶段:数据库与JDBC入门(后续进阶)
- 给新人的学习建议
这是一个为Java新人设计的系统性培养案例,涵盖从基础语法到简单项目实践的完整路径,该案例以 “图书管理系统” 为核心项目,通过拆解任务,逐步引导新人掌握Java核心技能。
第一阶段:Java基础语法与面向对象(预计1-2周)
目标: 掌握变量、控制流、数组、类与对象、封装、继承、多态。
配套练习:
-
Day 1-3: 基础语法
- 案例1:猜数字游戏
- 要求:程序随机生成1-100的数字,用户输入猜测,程序提示“大了”、“小了”或“恭喜猜中”。
- 知识点:
Scanner输入、Random类、if-else、while循环。
- 案例2:打印菱形与九九乘法表
- 知识点:嵌套循环、
for循环、System.out.print格式化。
- 知识点:嵌套循环、
- 案例1:猜数字游戏
-
Day 4-7: 面向对象
- 案例3:学生信息管理(控制台版)
- 要求:定义一个
Student类(属性:学号、姓名、年龄、成绩),创建一个StudentManager类,包含一个Student[]数组,实现增(add)、删(remove)、改(update)、查(query by id / name)功能。 - 知识点:类的定义、构造方法、
getter/setter、数组操作、equals()方法。 - 进阶: 引入
ArrayList代替数组,引入sort()按成绩排序。
- 要求:定义一个
- 案例3:学生信息管理(控制台版)
-
Day 8-10: 三大特性深入
- 案例4:动物叫声模拟
- 要求:定义抽象类
Animal(抽象方法makeSound()),派生出Dog、Cat、Duck类,编写测试类,利用多态让不同动物发出不同叫声。 - 知识点:
abstract、extends、Override、多态、向上转型。
- 要求:定义抽象类
- 案例5:简单登录系统
- 要求:使用
HashMap模拟用户数据库(key=用户名,value=密码),实现登录、注册、密码修改功能。 - 知识点:
HashMap、String常见方法(equals、trim)。
- 要求:使用
- 案例4:动物叫声模拟
第二阶段:核心API与异常处理(预计1周)
目标: 掌握常用API、异常处理机制、集合框架。
配套练习:
-
案例6:文件词频统计
- 要求:读取一个
.txt文件,统计并输出每个单词出现的次数,按次数降序排列。 - 知识点:
FileReader、BufferedReader、try-with-resources、HashMap(键值对存储)、Collections.sort自定义Comparator。 - 异常处理: 处理
FileNotFoundException和IOException。
- 要求:读取一个
-
案例7:日期计算器
- 要求:输入两个日期(如 “2023-10-01” 和 “2023-12-25”),计算相差天数、是否是闰年、输出指定日期的星期几。
- 知识点:
SimpleDateFormat(或DateTimeFormatter)、LocalDate、Period、DayOfWeek。 - 异常处理: 处理
ParseException。
-
案例8:简易计算器(实现四则运算)
- 要求:用户输入
5 + 3,程序输出结果,支持 ,处理除0异常。 - 知识点:
String.split()、switch-case、自定义ArithmeticException。
- 要求:用户输入
第三阶段:项目实战——图书管理系统(预计2-3周)
项目目标: 整合前两阶段知识,开发一个具有完整CRUD(增删改查)功能的控制台应用,并初步接触分层设计。
项目结构规划(新人必学分层思想)
src/
├── entity/ // 实体类(数据模型)
│ └── Book.java
├── service/ // 业务逻辑层
│ ├── BookService.java
│ └── LoanService.java
├── view/ // 视图层(控制台交互)
│ └── LibraryApp.java
└── util/ // 工具类
└── DataStore.java // 模拟数据库(存储集合)
功能模块拆分与任务分配
任务1:完成实体与数据存储(Day 1-2)
Book类属性:id(int),title(String),author(String),isBorrowed(boolean)。DataStore类:内部维护static ArrayList<Book> books,并提供init()方法预加载5本图书。
任务2:书籍管理核心服务(Day 3-5)
BookService方法:addBook(Book book):添加书籍(检查id是否重复)。deleteBook(int id):根据id删除。updateBook(Book book):根据id更新书名或作者。findById(int id)/findByTitle(String title):查找。listAllBooks():列出所有书籍。
任务3:借阅与归还逻辑(Day 6-8)
LoanService方法:borrowBook(int userId, int bookId):- 检查书籍是否存在且未被借出。
- 修改
book状态为isBorrowed=true。 - 记录借阅记录(可简单打印日志或存入另一个集合)。
returnBook(int bookId):检查是否存在且被借出,重置状态。
任务4:控制台交互界面(Day 9-12)
LibraryApp主菜单实现:===== 图书管理系统 ===== 1. 显示所有书籍 2. 添加书籍 3. 删除书籍 4. 修改书籍信息 5. 借书 6. 还书 7. 查找书籍 0. 退出 ====================== 请输入选项:- 使用
do-while循环实现菜单重复显示。 - 使用
switch-case处理不同选项。 - 用户输入校验: 使用
try-catch处理用户输入的数字格式异常(InputMismatchException)。
任务5:数据持久化与性能优化(Day 13-14,可选进阶)
- 使用
ObjectOutputStream/ObjectInputStream将ArrayList<Book>保存到本地文件books.dat,程序启动时加载,退出时保存。 - 引入
HashMap<Integer, Book>代替ArrayList,提高通过ID查找的效率。
第四阶段:数据库与JDBC入门(后续进阶)
在控制台项目完成后,可引入MySQL数据库。
- 案例9:数据库版图书管理系统:将
DataStore中的数据迁移到MySQL。- 设计
book表。 - 使用JDBC连接数据库,将
BookService中的集合操作替换为PreparedStatement的SQL操作(INSERT,SELECT,UPDATE,DELETE)。 - 重点: 学习
Connection、Statement/PreparedStatement、ResultSet,理解SQL注入防护。
- 设计
给新人的学习建议
- 先完成,再完美: 不要纠结于“我的代码不够优雅”,第一版能跑通CRUD就是胜利,之后逐步重构。
- 必须自己敲代码: 不要复制粘贴,每一个字符自己打出来,报错自己看控制台提示解决。
- 善用调试器: 当程序结果不符合预期时,使用IDE的断点调试(Debug)功能,一步步观察变量如何变化。
- 理解错误信息: Java的异常信息非常清晰(如
NullPointerException在第几行),学会阅读它比盲目搜索更重要。 - Git版本控制: 从项目第一天开始就使用
git,每天提交一次代码,这能让你大胆尝试修改代码,随时回退。
通过以上“基础语法练习 → 核心API案例 → 分层项目实战” 的路线,新人可以在3-4周内构建起完整的Java编程思维,并具备独立开发简单管理系统的基础能力。