跳至主要內容
Java 集合框架(对比 JavaScript)

概览:JS 集合 vs Java 集合

场景 JavaScript Java 说明
动态数组 Array ArrayList 最常用
链表 LinkedList 插入/删除快
集合(去重) Set HashSet 都一样
有序集合 TreeSet 自动排序
键值对 Map HashMap 都一样
有序 Map LinkedHashMap 按插入顺序
队列 Array (模拟) Queue / Deque BFS 必备
Array (模拟) Deque (ArrayDeque) DFS 用
不可变 Object.freeze List.of(), Collections.unmodifiableList() -

Mr.Ding大约 3 分钟java集合框架Collections前端转Java
异常处理 & I/O(对比 JavaScript)

一、异常处理

1. try-catch-finally

try {
    // 可能出问题的代码
    int result = 10 / 0;
    System.out.println("这行不会执行");
} catch (ArithmeticException e) {
    // 捕获特定异常
    System.out.println("除数不能为0: " + e.getMessage());
} catch (Exception e) {
    // 捕获通用异常(范围从窄到宽)
    System.out.println("其他异常: " + e.getMessage());
} finally {
    // 始终执行(类似 JS 的 finally)
    System.out.println("清理资源");
}

Mr.Ding大约 4 分钟java异常处理I/O前端转Java
Java 基础语法(对比 JavaScript)

1. Hello World

// Java: 一切皆类
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Mr.Ding大约 3 分钟java语法基础类型系统前端转Java
Java 学习路线 — 前端开发者视角

为什么学 Java?

作为一名前端开发者,学习 Java 能带来:

  • 类型系统:从 JS 的动态类型到 Java 的静态类型,建立更严谨的编程思维
  • 后端能力:用 Spring Boot 构建 REST API,替代 Node.js/Express
  • 生态认知:Maven/Gradle、ORM、IoC 容器等企业级开发范式
  • 职业扩展:全栈/后端岗位机会

Mr.Ding大约 1 分钟java学习路线前端转Java
Lambda & Stream API(对比 JavaScript 数组方法)

为什么说这是前端的「舒适区」?

Java Stream API 和 JS 数组方法(map/filter/reduce)的思想几乎完全一致。如果熟悉 JS 的函数式编程,这部分会非常容易上手。


1. Lambda 表达式(≈ JS 箭头函数)

// Java Lambda 语法
// (参数) -> { 方法体 }

// 单行可以省略 {} 和 return
(参数) -> 表达式

// 示例
(int x, int y) -> x + y           // 两个参数
(String name) -> System.out.println(name)  // 一个参数,无返回值
() -> Math.random()                // 无参数
x -> x * 2                         // 单个参数可省略 ()

Mr.Ding大约 4 分钟javaLambdaStream函数式编程前端转Java
Maven(对比 npm/pnpm)

为什么需要构建工具?

前端 Java
npm/pnpm/yarn Maven/Gradle
package.json pom.xml
npm install mvn install / Maven 自动下载
node_modules/ ~/.m2/repository/ (本地仓库)
npm scripts Maven lifecycle (phase)
webpack/vite 构建 mvn package 构建 jar/war
package-lock.json pom.xml + 版本锁定

Mr.Ding大约 3 分钟javaMaven构建工具前端转Java
Java 面向对象编程(对比 JavaScript)

1. Class 定义对比

// Java
public class Person {
    // 字段 (Field)
    private String name;
    private int age;

    // 构造器 (Constructor)
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 方法 (Method)
    public void sayHello() {
        System.out.println("你好,我是" + name);
    }

    // Getter / Setter
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

// 使用
Person p = new Person("小明", 25);
p.sayHello();

Mr.Ding大约 4 分钟java面向对象OOP前端转Java
Spring Boot 入门(对比 Express/Koa)

1. 从 Express 到 Spring Boot

Spring Boot ≈ Java 世界的 Express + 大量开箱即用的整合。

Express / Koa (Node.js)      →     Spring Boot (Java)
─────────────────────────────────────────────────────
app.get('/api/users')         →     @GetMapping("/api/users")
app.use(middleware)            →     @Component / Filter / Interceptor
req.body                       →     @RequestBody
req.params / req.query         →     @PathVariable / @RequestParam
res.json(data)                 →     @RestController + return
npm install express            →     pom.xml 加 spring-boot-starter-web
// 手动处理 JSON 序列化       →     自动 Jackson 序列化
nodemon                         →     DevTools (热重启)
dotenv                          →     application.yml / application.properties

Mr.Ding大约 3 分钟javaSpringBoot框架前端转Java