Rust 是什么
why-use-rust、安装 cargo、与 C++/Go 对照。
Rust 是什么
这一课你将能做到
- 说清楚 Rust 解决什么问题,以及它和 Java 在运行模型上的核心差异
- 安装 Rust 工具链(rustup、cargo),跑通第一个程序
- 用 cargo 创建、检查、编译、运行项目,看懂 Cargo.toml
为什么要学
Rust 是一门「在编译期就把内存错误拦下来」的系统级语言:性能对标 C/C++,没有 GC 停顿,也没有空指针、悬垂指针、数据竞争这三类经典事故。对高性能后端来说,这意味着可预测的尾延迟。
本站的判题服务、高频接口这类场景正是 Rust 的主场:单请求处理耗时的可预测性远超 GC 语言,内存占用低一个量级。学 Rust 不是为了替代 Java,而是掌握第二把武器之后,知道什么场景该拔哪一把。
人话:Java 把内存安全交给 GC 在运行时兜底,代价是停顿和开销;Rust 把这件事提前到编译期,用「所有权」规则让编译器替你检查,代价是前期学习曲线陡。
另外两条现实理由:一是 Rust 连续多年稳居「最受喜爱编程语言」榜首,大厂在数据库内核、云基础设施、区块链方向的岗位持续增长;二是它的类型系统思想(所有权、trait、模式匹配)会反向提升你写 Java 的建模水平——Java 21 的 sealed interface 和模式匹配 switch 正是在向 Rust 靠拢。
先建立图像
两种运行模型对比:
Java:源码 → 字节码 → JVM(GC 兜底内存)→ 运行时检查
Rust:源码 → 编译期检查(所有权/借用/生命周期)→ 原生机器码 → 直接运行
第一个程序:
fn main() {
let msg = "你好,Rust";
println!("{msg}");
}
没有虚拟机、没有类定义、没有样板代码,cargo run 一步到位出结果。
生态位对照:
| 维度 | Java | Rust |
|---|---|---|
| 运行载体 | JVM + 字节码 | 原生机器码 |
| 内存回收 | GC(分代、STW) | 所有权(编译期 drop) |
| 包管理构建 | Maven / Gradle | cargo |
| 并发模型 | 线程 + 锁 + 虚拟线程 | 所有权 + Send/Sync + async |
| 典型短板 | 尾延迟波动、内存占用高 | 编译慢、学习曲线陡 |
跟着做
步骤 1:安装工具链
Windows 下用 winget 安装官方 rustup(完成后新开一个终端):
winget install Rustlang.Rustup
rustup --version
rustup 是工具链管理器,对标 Java 世界的 SDKMAN:管理 rustc(编译器)、cargo(构建与包管理工具)和标准库文档。
Linux / macOS 一条命令:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
步骤 2:创建项目
cargo new hello-rust
cd hello-rust
生成的目录结构:
hello-rust/
├── Cargo.toml ← 项目清单,对标 pom.xml / build.gradle
└── src/
└── main.rs ← 程序入口
步骤 3:看懂 Cargo.toml
[package]
name = "hello-rust"
version = "0.1.0"
edition = "2021"
[dependencies]