https://avatars.githubusercontent.com/u/18242685

lihuu's blog

第 3 章:还在用 `int` 走天下?醒醒吧!

已经玩过变量声明了,现在该面对现实了:你那些"万能"的 intString 在 Rust 面前就是个笑话。

别以为换个语言就是换个语法糖。Rust 的类型系统要重新刷新你对"数据"这个概念的认知。准备好被虐了吗?

标量类型:精确到令人发指

Java 程序员最大的坏习惯是什么?类型选择恐惧症的反面——什么都用 int

第 2 章:还在为变量赋值这点小事纠结?

在上一章里,我们已经见识了 Rust 的第一次"暴击"——没有 GC 却能保证内存安全。现在,准备好迎接第二次冲击吧。

你以为变量声明是最简单的事情?在 Java 里确实如此:int x = 5; 然后想怎么改就怎么改。但在 Rust 的世界里,连声明个变量都要重新学习

这不是 Rust 在故意为难你,而是它在用最基础的语法特性,向你传递一个颠覆性的编程哲学。

第 1 章:停!别再写那千篇一律的 CRUD 了。

你是不是又在 IntelliJ IDEA 里敲着熟悉的 @RestController,配置着又一个 Spring Boot 项目?你是不是觉得自己已经是 Java 大神了——熟练掌握 JVM 调优,玩转各种设计模式,Lambda 表达式信手拈来?

醒醒吧,朋友。

现实世界远比你想象的残酷。当你的系统在高并发下因为 GC 停顿而丢失订单时,当你的微服务因为内存泄漏而频繁重启时,当你为了那点性能优化而绞尽脑汁时——你就会发现,Java 这个"温暖的舒适区"其实是个美丽的陷阱。

第 15 章:未来之路——Rust 生态圈漫游指南与持续学习

朋友,恭喜你!你已经走完了一段非凡的旅程。从最初对“没有 GC 的内存安全”感到好奇,到亲手征服所有权、借用、生命周期;从体验“无畏并发”的自信,到构建出第一个高性能的 Web 服务。你已经完成了从一位资深 Java 开发者到一位有能力使用 Rust 解决实际问题的程序员的转变。

这不仅是技术的学习,更是一次深刻的思维模式的“换轨”——你已经从习惯于依赖运行时(Runtime)的垃圾回收器,转变为能够在编译期(Compile-time)就向编译器证明程序的正确性。

第 14 章:从 Spring 到 Axum/Actix-web——构建你的第一个 Rust Web 服务

作为资深的 Java 开发者,我们闭着眼睛都能用 Spring Boot 搭建起一个 RESTful API。@RestController@GetMapping@Autowired…这些注解如同魔法咒语,Spring 的自动配置和依赖注入为我们处理了大量底层细节,让我们能以惊人的速度进行开发。

现在,欢迎来到 Rust 的 Web 开发世界。这里没有“魔法”,没有运行时反射,也没有庞大的依赖注入容器。Rust 的哲学是明确、显式和编译期安全。你可能会失去一些 Spring Boot 的“开箱即用”的便利,但你将换来的是无与伦比的性能、极致的资源效率和坚如磐石的可靠性。

第 13 章:“无畏并发”不是梦——为什么 Rust 能让你自信地编写多线程代码

对于任何一位资深的 Java 开发者来说,并发编程都是一个既强大又充满凶险的领域。我们熟练地使用 ExecutorServicesynchronizedReentrantLockjava.util.concurrent 包中的各种工具。但我们也深知其痛苦:数据竞争(Race Conditions)死锁(Deadlocks)ConcurrentModificationException 等问题,它们像幽灵一样在运行时出没,极难复现和调试。

第 12 章:特性(Traits)与泛型——Rust 式的“面向接口编程”

在之前的章节中,我们已经接触过 Vec<T>HashMap<K, V>。你是否想过,这些尖括号里的 TKV 是什么?它们就是泛型(Generics),一种让我们编写灵活、可复用代码的工具,而无需预先知道具体的类型。

在 Java 中,我们同样使用泛型来实现类型参数化。而当我们想定义一个“契约”,让不同的类都能遵循同一种行为标准时,我们会使用接口(Interfaces)。通过 class MyClass implements MyInterface,我们实现了多态和代码解耦。

第 11 章:集合类型——Vector、String、HashMap 的所有权内幕

作为经验丰富的 Java 开发者,我们对 ArrayListStringHashMap 的强大功能了如指掌。它们是 Java 集合框架的核心,也是我们日常编程的得力干将。Rust 同样提供了功能对等的集合类型,但它们的行为模式,尤其是内存管理方式,与 Java 有着天壤之别。

本章我们将探索 Rust 三大核心集合类型:Vec<T>(向量)、String(字符串)和 HashMap<K, V>(哈希映射)。它们有一个共同点:其数据都存储在堆(Heap)上。这意味着,它们都必须严格遵守我们在前面章节学到的所有权规则。理解这些规则如何应用在集合类型上,是写出地道、安全 Rust 代码的关键。