1. 【Java】为什么是 Java?(Java:从入门到精通系列开篇)

发布时间:2026/7/12 20:02:47
1. 【Java】为什么是 Java?(Java:从入门到精通系列开篇) 不管你是因为什么原因来到这里的或许是学校的课程要求或许是工作中需要转战后端又或许只是单纯好奇Java 到底是什么我都想先跟你说一声欢迎。学习一门编程语言就像学习一门新的自然语言。刚开始会有些陌生甚至会因为记不住关键字或搞不懂语法而沮丧。但别担心这个系列就是为你准备的。该系列会尽量用最平实的语言、最清晰的例子陪着你一步一步往前走。今天我们不写代码甚至连开发环境都不装。我们先做一件事坐下来好好认识一下 Java这门语言。1. Java 从哪里来Java 语言源于 1991 年 Sun 公司 James Gosling 领导的Oak项目1995 年 Sun 公司正式起名为 Java。最初他们想为家用电器设计一种能够跨平台运行的编程语言。后来互联网兴起Java 凭借一次编写到处运行Write Once, Run Anywhere的特性迅速成为 Web 开发的热门语言。再后来它又稳稳地接住了企业级应用、大数据、Android 移动开发等一波又一波浪潮。到了今天Java 已经 30 岁了。在编程语言界30 岁算是高龄但 Java 依然稳居 TIOBE 排行榜前三是企业级后端开发的中坚力量。它不老它只是成熟。你可能会问为什么 Java 能活这么久答案藏在它的几个核心特点里。2. Java 的三大法宝2.1 跨平台“一次编写到处运行”这是 Java 最响亮的口号。在很多语言里你在 Windows 上编译好的程序拿到 Linux 或 macOS 上就跑不了了得重新编译。但 Java 不同你写好的代码编译成一种叫做字节码Bytecode的中间文件.class文件然后由Java 虚拟机JVM来执行。JVM 就像一位翻译官它在 Windows 上就说 Windows 的话在 Linux 上就说 Linux 的话但你的字节码不用变。只要目标平台安装了对应的 JVM你的程序就能跑起来。打个比方你写了一份中文说明书翻译官把它翻译成英文给英国人看翻译成日文给日本人看但你那份原始中文说明书始终是同一份。这就是 Java 的跨平台魔法。我们会在第 4 篇文章里详细拆解这个魔法。2.2 面向对象用人的思维去编程在 Java 之前很多语言是面向过程的就像写一份流水账先做 A再做 B再做 C。但现实世界是由对象组成的——你是一个对象你的电脑是一个对象你手里的水杯也是一个对象。Java 鼓励你用对象来建模世界。比如你可以定义一个Student类它有姓名、年龄、成绩这些属性也有学习、考试这些行为。然后你可以创建多个学生对象让他们各自行动。这种思维方式更贴近人类认识世界的方式也更容易组织大型项目。我们会花整整一个阶段第三阶段来深入理解它。2.3 自动内存管理不用自己操心垃圾在早期的 C/C 里程序员需要手动申请内存用完还要手动释放。忘记释放会导致内存泄漏提前释放又可能导致程序崩溃——这是很多 bug 的根源。Java 引入了垃圾回收Garbage CollectionGC机制JVM 会定期自动扫描找出那些不再使用的对象然后帮你回收它们占用的内存。你只需要专注于业务逻辑不用整天提心吊胆地管理内存。当然GC 也不是万能的我们以后会聊到它的调优但起码在入门阶段你可以安心地把这件事交给 Java 去处理。3. Java 能做什么你可能听过Java 什么都能做这有点夸张但也差不太多。具体来说Java 的常见战场包括企业级后端开发这是 Java 的绝对主力领域。银行、电商、物流、保险……无数大型系统的后端服务都是用 Java 写的比如 Spring Boot 框架几乎成了行业标准。大数据生态Hadoop、Spark、Flink 等大数据框架的核心都是 Java 或基于 JVM 的语言如 Scala。Android 应用开发虽然现在 Google 力推 Kotlin但 Android 的底层和大量老项目仍然是 Java。微服务与云原生随着 JDK 的不断迭代Java 在云环境下的启动速度和内存占用都有了巨大改善依然是微服务架构的首选之一。桌面应用虽然不像以前那么流行但像 IntelliJ IDEA、Eclipse 这些知名 IDE 都是 Java 写的。可以说只要你想做服务端的开发Java 几乎是一张安全牌它稳定、成熟、生态丰富也有海量的学习资源和社区支持。当然Java 也有它的脾气相比一些新兴语言它的语法相对冗长启动时的内存占用也更大。但正是这些稳重的代价换来了企业级场景下的可靠性和可维护性。4. 为什么我们选择 JDK 21JDKJava Development KitJava 开发工具包是编写 Java 程序的必备工具包里面包含了编译器、运行时环境JRE和各种开发工具。它的版本号一直在更新从最早的 1.0到经典的 1.8也就是 Java 8再到后来的 Java 11、17……而我们这个系列将使用JDK 21。Java 8 是一个非常经典且稳定的版本至今仍在大量生产环境中运行。但 JDK 21 作为新的 LTS 版本引入了虚拟线程、模式匹配等能够显著提升开发效率的特性。我们选择 JDK 21是为了让你一步到位掌握现代 Java 的最佳实践。JDK 21 于 2023 年 9 月发布是一个LTS长期支持版本。Oracle 会为 LTS 版本提供至少数年的安全更新和 bug 修复所以企业可以放心在生产环境中使用。JDK 21 带来了很多激动人心的新特性比如虚拟线程Virtual Threads一种轻量级的线程模型能极大提升高并发应用的性能。模式匹配Pattern Matching让switch语句变得更加强大和优雅。记录模式Record Patterns简化数据类的解构。字符串模板String Templates预览让字符串拼接更直观。这些新特性会让你的 Java 代码写起来更简洁、更安全也更带劲。我们会从基础语法一路讲到这些高级特性保证你学完后用的就是最现代、最前沿的 Java。JDK 21高度兼容绝大多数 Java 8 的代码你可以平滑升级。我们站在 Java 8 的肩膀上向更远处眺望。当然Java 9 之后引入的模块化系统JPMS以及部分已移除的 API可能会导致极少数老代码需要微调我们会在后续文章中说明。5. 这个系列会怎样带你走该系列规划了一条从纯小白到项目实战的学习路径一共约 60 多篇文章分为六个阶段阶段主题你将会收获一入门篇 —— 与Java的第一次握手跑起第一个 Java 程序理解 JVM 原理二基础篇 —— 夯实语法地基掌握变量、运算符、流程控制、方法、数组等三核心篇 —— 面向对象编程透彻理解类、继承、多态、接口、异常等四进阶篇 —— 常用API与工具熟练使用集合、Stream、I/O、日期时间等五精通篇 —— JDK 21新特性与并发掌握虚拟线程、模式匹配写出高性能并发代码六实战篇 —— 项目驱动与生态拓展用 Maven Spring Boot 做出一个个人博客┌───────────────────│ Java 从入门到精通 · 知识地图├───────────────────│ 第一阶段入门│ ├── Java 的历史与生态│ ├── JDK 21 安装与环境变量│ ├── Hello, World! 与程序的骨架│ ├── JVM、JRE、JDK 的奥秘│ └── 第一个命令行小项目名片生成器├───────────────────│ 第二阶段基础语法│ ├── 变量与数据类型基本类型 引用类型│ ├── 常量和字面量 枚举│ ├── 运算符算术、赋值、关系、逻辑、位│ ├── 流程控制if-else、switch、循环│ ├── 方法定义、调用、重载、递归│ ├── 数组一维、多维、Arrays 工具类│ ├── String不可变性、常用方法、StringBuilder、文本块│ ├── JDK 21 语法糖var、文本块、Record、未命名变量│ └── 阶段实战命令行计算器├───────────────────│ 第三阶段面向对象编程│ ├── 类与对象 构造方法│ ├── 封装private、getter/setter、JavaBean│ ├── 继承extends、super、方法重写│ ├── 多态向上转型、向下转型、instanceof│ ├── 抽象类abstract、模板方法模式│ ├── 接口interface、implements、默认方法、函数式接口│ ├── 内部类与静态嵌套类│ ├── 枚举带字段和方法、策略枚举│ ├── 异常处理try-catch-finally、自定义异常、try-with-resources│ ├── Record紧凑构造方法、Record Patterns│ ├── 包与导入package、import、模块化│ └── 阶段实战学生管理系统OOP 版├───────────────────│ 第四阶段进阶│ ├── 集合框架List、Set、Map、Queue、Stream│ ├── 泛型类型参数、通配符、类型擦除│ ├── I/O 流字节流、字符流、NIO.2、Files 工具类│ ├── 日期时间LocalDate、LocalDateTime、ZonedDateTime、Duration、Period│ ├── Lambda 表达式函数式接口、方法引用│ ├── Stream API中间操作、终止操作、Collectors、并行流│ ├── Optional安全取值、orElse、map、flatMap│ ├── 反射Class、Field、Method、Constructor│ ├── 注解内置注解、自定义、元注解、反射读取│ └── 阶段实战图书管理系统├───────────────────│ 第五阶段精通与并发│ ├── 线程基础创建、生命周期、状态│ ├── synchronized 与 ReentrantLock锁机制│ ├── wait/notify 与 Condition线程协作│ ├── JUC 工具线程池、BlockingQueue、CountDownLatch、Fork/Join│ ├── JMM 与 volatile可见性、有序性│ ├── 并发容器与原子类ConcurrentHashMap、AtomicInteger、LongAdder│ ├── 虚拟线程Virtual Threads、结构化并发、ScopedValue│ ├── 模式匹配instanceof、switch、Record Patterns、穷尽性│ ├── JDK 21 全景15个JEP一览│ ├── 网络编程Socket、ServerSocket、HttpClient│ └── 阶段实战高并发聊天室├───────────────────│ 第六阶段实战与生态│ ├── Mavenpom.xml、依赖管理、生命周期│ ├── JUnit 5测试注解、断言、参数化测试、覆盖率│ ├── 日志框架SLF4J Logback│ ├── JDBC连接、PreparedStatement、事务、连接池│ ├── Spring Boot 入门自动配置、起步依赖、REST API│ ├── 个人博客项目上: 设计、实体、Repository│ ├── 个人博客项目下: Service、Controller、Thymeleaf、Security└───────────────────每一篇文章都会尽量做到由浅入深先讲是什么再讲为什么最后讲怎么用前后连贯新知识会尽量关联前面讲过的内容让你不断巩固代码 注释每个示例都会配上清晰的注释不怕你看不懂这不是一本语法手册。每个概念都配了代码示例每个阶段都有实战项目——命令行计算器、学生管理系统、图书管理系统、高并发聊天室、个人博客……你写的每一行代码都会变成真正能运行的东西。6. 从 C 到 Java你已有的基础不会浪费如果你读完了本博主的 C语言从入门到精通 系列恭喜你——你已经拥有了学 Java 最好的一块踏板。你可能会感到惊喜C 中的struct在 Java 里变成了类class但理念高度一致封装数据、定义行为。C 中的指针和内存管理让你能深刻理解 Java 的引用是什么以及垃圾回收到底回收了什么。C 中的函数指针概念在 Java 中通过函数式接口和Lambda 表达式得到了更安全、更类型化的实现。C 中的系统调用和多线程让你在学 Java 的并发编程时不只是会用线程池还能想象到操作系统那层在发生什么。Java 把 C 语言中容易出错的危险动作包装成了更安全的抽象但底层思想是相通的。你的 C 语言功底不会白费它恰恰是你比纯 Java 初学者理解更深的那一层。学 C 语言是为了向下理解计算机学 Java 是为了向上理解软件工程。两者合在一起就是一个完整的视角。7. 写在最后学习编程不是一蹴而就的事。你可能今天看完一篇文章觉得我懂了但明天写代码时又卡住了。这太正常了我自己也是这样过来的。重要的是坚持而不是速度。哪怕每天只弄懂一个小概念三个月后你回头看也会发现自己已经走了很远。另外一定要动手。看代码和写代码是完全两回事。每一篇文章末尾我都会留一个动手试试的小练习请你一定打开电脑敲一遍哪怕照抄也行手指的记忆比大脑更可靠。今天的总结我们聊了 Java 的出身、跨平台原理、面向对象思想、垃圾回收机制也知道了 Java 能用在哪些领域以及为什么选择 JDK 21。最后还预览了本系列的完整路线图。现在还不需要你记住所有细节只要有一个大概的印象就好。就像认识新朋友第一次见面不必了解他的全部人生知道他的名字和职业就够了。下篇文章我们会正式开始动手安装 JDK 21 和开发工具IntelliJ IDEA 与 VS Code 对比推荐让你的电脑准备好迎接 Java 的世界。动手试试在网上搜索Java 历史或James Gosling看一看 Java 早期开发的一些有趣故事增加一点对这门语言的亲切感。想一想你最终想用 Java 做什么是做网站后端还是学大数据还是只是为了应付考试把这个目标写下来贴在你能看到的地方它会成为你坚持下去的小动力。我们下一篇见。 获取本系列示例代码请访问 GitCode。