# Learn java

# 🧩




✅ Copy success!

下面是第 1 周完整学习清单(可直接当学习笔记使用)。内容已经刻意对齐你现有的 PHP / Laravel / Hyperf 经验,避免无效知识,全部都是后续 Spring Boot 必须用到的基础

建议方式: 每天 2–3 小时,顺序学,不跳章,边看边敲代码


# 第 1 周 · Java 基础语法 + 集合 + 面向对象

(Java 零基础 → 可写规范 Java 类)


# 一、Java 基本认知(必须理解,但不用深挖)

# 1️⃣ Java 程序结构(死记)

package com.example.demo;

import java.util.List;

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello Java");
    }
}
✅ Copy success!

你必须记住的规则

  • 一个 .java 文件 ≈ 一个 class(主 class)
  • 文件名 = public class 名
  • 所有代码必须写在 class 里
  • main 是程序入口

# 2️⃣ Java vs PHP(核心差异)

对比项 Java PHP
类型 强类型 弱类型
运行 编译 + JVM 解释
文件结构 严格 灵活
空值 null null
泛型 原生 较弱

# 二、变量 & 基础数据类型(必须背)

# 1️⃣ 基本类型(值类型)

int a = 10;
long b = 100L;
double c = 3.14;
boolean flag = true;
✅ Copy success!

⚠️ Java 没有自动类型转换


# 2️⃣ 引用类型

String name = "Tom";
Integer age = 18;
✅ Copy success!

重点

  • String 是引用类型
  • String 不可变
  • == 比较地址,equals() 比较值

# 三、流程控制(你非常熟)

if (a > 0) {}

for (int i = 0; i < 10; i++) {}

while (true) {}
✅ Copy success!

⚠️ Java 没有 foreach ($arr as $v) 👉 用增强 for

for (String s : list) {}
✅ Copy success!

# 四、方法(函数)

public static int sum(int a, int b) {
    return a + b;
}
✅ Copy success!

规则

  • 必须声明返回类型
  • 无返回用 void
  • 参数必须声明类型

# 五、数组(只了解)

int[] arr = new int[]{1,2,3};
String[] names = {"A","B"};
✅ Copy success!

实战几乎不用,后面用集合


# 六、集合(第 1 周核心)

# 1️⃣ List(最常用)

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");

list.get(0);
list.size();
✅ Copy success!

遍历:

for (String s : list) {
    System.out.println(s);
}
✅ Copy success!

# 2️⃣ Map(非常重要)

Map<String, Object> map = new HashMap<>();
map.put("id", 1);
map.put("name", "Tom");

map.get("name");
✅ Copy success!

遍历:

for (Map.Entry<String, Object> entry : map.entrySet()) {
    entry.getKey();
    entry.getValue();
}
✅ Copy success!

# 3️⃣ Set(去重)

Set<Integer> set = new HashSet<>();
✅ Copy success!

# 4️⃣ List / Map 对照 PHP

Java PHP
List 普通数组
Map 关联数组
Set array_unique

# 七、面向对象(Java 的核心)

# 1️⃣ 类 & 对象

public class User {
    private Long id;
    private String name;

    public Long getId() {
        return id;
    }
}
✅ Copy success!

规则

  • 成员变量必须 private
  • 通过 getter / setter 访问

# 2️⃣ 构造方法

public User(Long id, String name) {
    this.id = id;
    this.name = name;
}
✅ Copy success!

# 3️⃣ 继承(extends)

public class AdminUser extends User {
}
✅ Copy success!

# 4️⃣ 接口(非常重要)

public interface UserService {
    void createUser();
}
✅ Copy success!

实现:

public class UserServiceImpl implements UserService {
    public void createUser() {}
}
✅ Copy success!

Java 项目中: 90% 的 Service 都是 interface + impl


# 5️⃣ 抽象类(知道即可)

public abstract class BaseService {
    abstract void execute();
}
✅ Copy success!

# 八、修饰符(必须会)

修饰符 作用
public 任意访问
protected 子类
private 仅类内
static 类级别
final 不可继承/修改

# 九、必须掌握的“Java 思维”

# 1️⃣ 一切皆对象(基本类型除外)

# 2️⃣ 接口优先,面向抽象编程

UserService service = new UserServiceImpl();
✅ Copy success!

# 十、第 1 周【必须达到的能力】

到第 7 天,你应该能:

  • 独立写一个 Java class
  • 定义实体类(User / Order)
  • 熟练使用 List / Map
  • 写 interface + 实现类
  • 看懂 Spring Boot 示例代码(虽然还不会)

# 十一、第 1 周自检清单(你可以打勾)

  • [ ] 知道 Java 程序结构
  • [ ] 会写方法
  • [ ] 会用 List / Map
  • [ ] 知道 == vs equals()
  • [ ] 会写接口和实现类
  • [ ] 会写实体类

# 下一步预告(第 2 周)

  • 异常体系(try/catch)
  • Stream API
  • 注解
  • Lombok
  • Spring Boot 入门

如果你愿意,下一步我可以: 直接给你一套「第 1 周每日拆解 + 练习题 + 标准答案」,或者 👉 从 Day 1 开始,像导师一样每天带你一节