一、基础语法阶段(2-3周)
1.1 开发环境搭建
-
安装JDK 17+(推荐Amazon Corretto)
-
配置IntelliJ IDEA开发环境
-
掌握Maven/Gradle构建工具基础
1.2 核心语法要素
java
复制
// 基础类型与控制结构 public class Basics { public static void main(String[] args) { // 变量声明 int age = 25; double price = 19.99; String name = "张三"; // 条件判断 if (age >= 18) { System.out.println(name + "已成年"); } else { System.out.println(name + "未成年"); } // 循环结构 for (int i = 0; i < 5; i++) { System.out.print(i + " "); } } }
1.3 方法定义与数组
java
复制
public class ArrayDemo { // 计算数组平均值 static double average(int[] nums) { int sum = 0; for (int n : nums) { sum += n; } return (double)sum / nums.length; } public static void main(String[] args) { int[] scores = {85, 92, 78, 90}; System.out.println("平均分:" + average(scores)); // 86.25 } }
二、面向对象阶段(3-4周)
2.1 类与对象
java
复制LOL换肤官方网站_LOL换肤大师_LOL皮肤美化_LOL助手
class BankAccount { private String owner; private double balance; public BankAccount(String owner, double balance) { this.owner = owner; this.balance = balance; } public void deposit(double amount) { if (amount > 0) balance += amount; } public boolean withdraw(double amount) { if (amount <= balance) { balance -= amount; return true; } return false; } @Override public String toString() { return owner + "的余额:" + balance; } } public class OOPDemo { public static void main(String[] args) { BankAccount account = new BankAccount("Alice", 1000); account.deposit(500); account.withdraw(200); System.out.println(account); // Alice的余额:1300.0 } }
2.2 继承与多态
java
abstract class Shape { protected String color; public Shape(String color) { this.color = color; } public abstract double area(); public void display() { System.out.println(color + "图形的面积:" + area()); } } class Circle extends Shape { private double radius; public Circle(String color, double radius) { super(color); this.radius = radius; } @Override public double area() { return Math.PI * radius * radius; } } public class InheritanceDemo { public static void main(String[] args) { Shape s = new Circle("红色", 5.0); s.display(); // 红色图形的面积:78.53981633974483 } }
三、核心API阶段(4-5周)
3.1 集合框架
java
复制LOL换肤官方网站_LOL换肤大师_LOL皮肤美化_LOL兔子换肤_UULOL换肤
import java.util.*; public class CollectionDemo { public static void main(String[] args) { // List操作 List<Integer> nums = new ArrayList<>(); Collections.addAll(nums, 3, 1, 4, 1, 5); nums.sort(Comparator.reverseOrder()); // Map操作 Map<String, Integer> wordCount = new HashMap<>(); String text = "apple banana apple orange"; for (String word : text.split(" ")) { wordCount.put(word, wordCount.getOrDefault(word, 0) + 1); } System.out.println(nums); // [5, 4, 3, 1, 1] System.out.println(wordCount); // {orange=1, banana=1, apple=2} } }
3.2 IO操作
java
复制
import java.nio.file.*; import java.io.*; public class FileIODemo { public static void main(String[] args) { // 写入文件 try (BufferedWriter writer = Files.newBufferedWriter(Paths.get("data.txt"))) { writer.write("Hello Java IO"); } catch (IOException e) { e.printStackTrace(); } LOL换肤官方网站_LOL换肤大师_LOL皮肤美化_LOL换肤助手 // 读取文件 try (Stream<String> lines = Files.lines(Paths.get("data.txt"))) { lines.forEach(System.out::println); // Hello Java IO } catch (IOException e) { e.printStackTrace(); } } }
四、进阶特性阶段(5-6周)
4.1 多线程编程
java
复制
import java.util.concurrent.*; public class ThreadDemo { static class Counter implements Runnable { private static int count = 0; private static final Object lock = new Object(); @Override public void run() { synchronized(lock) { for (int i = 0; i < 1000; i++) { count++; } } } public static int getCount() { return count; } } public static void main(String[] args) throws InterruptedException { ExecutorService executor = Executors.newFixedThreadPool(4); for (int i = 0; i < 10; i++) { executor.execute(new Counter()); } executor.shutdown(); executor.awaitTermination(1, TimeUnit.MINUTES); System.out.println("最终计数:" + Counter.getCount()); // 10000 } }
4.2 泛型与反射
java
复制
import java.lang.reflect.*; public class GenericDemo<T> { private T data; public GenericDemo(T data) { this.data = data; } public void printType() { System.out.println("数据类型:" + data.getClass().getName()); } public static void main(String[] args) throws Exception { GenericDemo<String> demo = new GenericDemo<>("Hello"); demo.printType(); // java.lang.String // 反射获取字段信息 Field field = GenericDemo.class.getDeclaredField("data"); System.out.println("字段类型:" + field.getType().getName()); // java.lang.Object } }
五、项目实战阶段(持续进行)
5.1 学生管理系统
java
复制
// 使用JDBC连接MySQL public class StudentDAO { private static final String URL = "jdbc:mysql://localhost:3306/school"; private static final String USER = "root"; private static final String PASS = "123456"; public List<Student> getAllStudents() { List<Student> list = new ArrayList<>(); try (Connection conn = DriverManager.getConnection(URL, USER, PASS); Statement stmt = conn.createStatement()) { ResultSet rs = stmt.executeQuery("SELECT * FROM students"); while (rs.next()) { Student s = new Student( rs.getInt("id"), rs.getString("name"), rs.getDouble("score") ); list.add(s); } } catch (SQLException e) { e.printStackTrace(); } return list; } }
5.2 Spring Boot Web应用
java
复制
@RestController @RequestMapping("/api") public class UserController { @Autowired private UserService userService; @GetMapping("/users") public ResponseEntity<List<User>> getAllUsers() { return ResponseEntity.ok(userService.findAll()); } @PostMapping("/users") public ResponseEntity<User> createUser(@RequestBody User user) { return ResponseEntity.status(HttpStatus.CREATED) .body(userService.save(user)); } }
学习路线总结
分阶段重点
阶段 | 核心内容 | 推荐项目 |
---|---|---|
基础语法 | 数据类型、流程控制、数组 | 计算器小程序 |
面向对象 | 继承/多态、异常处理、接口 | 银行账户管理系统 |
核心API | 集合框架、IO/NIO、多线程 | 文件内容分析工具 |
企业级开发 | JDBC、Spring Boot、MyBatis | RESTful API服务 |
高阶进阶 | JVM原理、设计模式、分布式基础 | 简易RPC框架 |
学习建议
-
环境配置:使用Docker容器搭建MySQL/Redis等中间件环境
-
代码规范:遵循Google Java Style Guide,使用Checkstyle插件
-
调试技巧:掌握IDEA的远程调试和JProfiler性能分析
-
持续学习:
-
定期参与LeetCode周赛(目标200题以上)
-
研究Spring Framework源码
-
学习微服务架构(Spring Cloud)
-
-
项目沉淀:
-
开发电商秒杀系统
-
实现分布式文件存储系统
-
构建实时日志分析平台
-
学习周期:每天保持3小时有效学习,6个月可达到中级开发水平。建议采用「学练结合」模式,每个知识模块配套完成至少2个实践项目。