慢慢自学Java入门计划
一种比较慢的自学路径是视频加看书,好处是基础打的比较扎实,坏处是时间花费的比较多。
JavaSe入门阶段
首先是JavaSe入门阶段,可以在B站上找找java培训班的视频,或者某学堂的300集(随便找一个看看)。这个阶段主要是形成编程的思维习惯,看视频一定要把视频的例子自己动手敲一遍,注意不要对着视频里面敲(这就成了打字员了)。这阶段可以自己多练习水仙花数,杨辉三角,小明零花钱计算等等。
掌握基本语法,基本数据类型、static关键字、循环语句、条件语句、数组、泛型等等。
面向对象设计思想,封装、继承、多态,抽象类和接口等等。
集合,基本上就是ArrayList、LinkedList、Hashtable、HashMap、HashSet等等,深入一点就需要了解这些类的底层实现原理,优缺点等等。
这个时候可以做一个命令行的图书管理系统或者超市系统等等(形成面向对象的思维)。
所有刚开始的项目都逃不过分析有哪些对象,有哪些行为(方法,基本上都是增删改查),对象之间的关系。
首先拿登录系统来举例,首先需要分析具有哪些对象以及对象之间的关系:
用户类User
唯一标识id;
用户名userName;
密码password;
数据存储类Data
User[] users; // 数组length属性,索引从0开始
系统类System
Data data;
接下来分析这些类的行为,分析方法的参数以及返回值:
Data类
C:create新增用户
int create(String userName, String password); // 返回用户id
R:read读取/查询用户
User select(String userName);
User select(int id); // 方法重载
U:update新增/修改用户
int insert(String userName,String password); // 返回用户id
int update(int id,String userName,String password); // 返回修改的记录条数
D:删除用户
void delete(int id);
System类
登录login
boolean login(String userName,String password) {
User loginUser = select(userName); // 通过用户名查询用户
// loginUser.getPassword()与用户输入的密码进行比较
// 相同登录成功,不同则登录失败
}
注册register
int register(String userName,String password) {
// 首先判断用户名是否存在,存在则返回-1
User user = select(userName);
// 新增用户
insert(userName,password);
return id;
}
接下来就是Java异常处理,IO流,多线程(银行家算法等),反射等等。该阶段推荐视频加《java核心技术:卷一》。
之后就是学习下Mysql数据库,书籍推荐《SQL 基础教程(第 2 版)》《高性能MySQL》。
学完数据库之后,就要学习JDBC来操作数据库了(自己封装一个数据库工具类),可以看看方立勋的jdbc视频。完成这些之后可以做一个俄罗斯方块或者贪吃蛇的小项目(推荐看看吧里小翼的俄罗斯方块视频)。
JavaWeb阶段
到这个时候就可以正式进入JavaWeb阶段了。书籍推荐《Head First Servlets & JSP》以及《深入JavaWeb技术内幕》。
Servlet的学习(都2019年了,可以不用学习jsp了),tomcat的使用,做一个简单的bbs系统。
理解MVC架构。
框架的学习,Spring(IOC和AOP,bean的作用域与生命周期)、Mybatis、Spring MVC、Spring Boot。随便做一个XX系统。这些系统都需要一点前端知识(html、css、js)以及前后端交互Ajax,Restful接口格式。
当然中间还有一些其他知识HTTP协议、Maven、Git、Docker等等。学习这些的过程中一定记得保存好代码,做好笔记,经常复习。





