跳到主要内容

Java 是什么

在开始学习 Java 之前,让我们先了解 Java 是什么,它有什么特点,以及它为什么能在编程语言的世界中占据重要地位。

Java 定义与特点​

什么是 Java​

Java 是一门面向对象的高级编程语言,由 Sun Microsystems(现已被 Oracle 收购)在 1995 年发布。Java 的设计目标是"一次编写,到处运行"(Write Once, Run Anywhere,WORA),这意味着你编写的 Java 程序可以在任何支持 Java 的平台上运行,无需修改代码。

Java 的核心特点​

1. 跨平台性(Platform Independence)​

Java 最著名的特点就是跨平台。这得益于 JVM(Java Virtual Machine,Java 虚拟机):

// 这段代码可以在 Windows、macOS、Linux 上运行,无需修改
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}

工作原理:

  • Java 源代码编译成字节码(.class 文件)
  • 字节码在 JVM 上运行
  • 不同平台有对应的 JVM,但字节码是统一的

2. 面向对象(Object-Oriented)​

Java 是一门纯面向对象的语言(除了基本数据类型),所有代码都必须在类中:

// 所有代码都在类中
public class Student {
// 属性(字段)
private String name;
private int age;

// 方法
public void study() {
System.out.println(name + " is studying");
}
}

面向对象的优势:

  • 封装:隐藏实现细节
  • 继承:代码复用
  • 多态:灵活的设计

3. 稳健性(Robustness)​

Java 设计时注重程序的稳定性和可靠性:

  • 内存管理:自动垃圾回收(Garbage Collection),无需手动管理内存
  • 异常处理:完善的异常处理机制
  • 类型安全:强类型检查,减少错误
// Java 会自动进行类型检查
int number = 10;
// number = "hello"; // 编译错误!类型不匹配

4. 安全性(Security)​

Java 内置了多层安全机制:

  • 沙箱机制:限制程序访问系统资源
  • 字节码验证:确保代码安全
  • 安全管理器:控制程序权限

5. 简单易学​

虽然 Java 功能强大,但语法相对简洁:

  • 没有指针(相比 C/C++)
  • 自动内存管理
  • 丰富的标准库

6. 高性能​

虽然 Java 是解释型语言,但通过以下技术实现高性能:

  • JIT 编译:即时编译,将热点代码编译为机器码
  • 优化技术:JVM 持续优化
  • 多线程支持:充分利用多核 CPU

Java 与其他语言对比​

Java vs C/C++​

特性JavaC/C++
内存管理自动(垃圾回收)手动
指针无有
编译编译为字节码编译为机器码
跨平台一次编写,到处运行需要重新编译
性能接近 C++最高
学习曲线相对平缓较陡

选择建议:

  • Java:企业应用、Web 开发、大型系统
  • C/C++:系统编程、游戏开发、性能要求极高的场景

Java vs Python​

特性JavaPython
类型系统静态类型动态类型
性能较快较慢
语法较冗长简洁
应用场景企业级、大型系统脚本、数据分析、AI
学习曲线中等平缓

选择建议:

  • Java:大型企业应用、需要高性能的场景
  • Python:快速开发、数据分析、机器学习

Java vs JavaScript​

特性JavaJavaScript
运行环境JVM浏览器/Node.js
类型系统静态类型动态类型
应用场景后端、企业应用前端、全栈
性能较高中等

选择建议:

  • Java:后端服务、企业级应用
  • JavaScript:前端开发、全栈开发
提示

Java 和 JavaScript 的关系就好比“雷锋”和“雷峰塔”的关系 —— 没有关系。大家不要被它们的名字给骗了!🤔

Java 的典型应用场景​

1. 企业级应用开发​

Java 是企业级应用开发的首选语言:

  • ERP 系统:企业资源规划
  • CRM 系统:客户关系管理
  • 金融系统:银行、证券、保险
  • 电商平台:大型购物网站

为什么选择 Java:

  • 稳定性高
  • 安全性好
  • 生态完善(Spring 框架)
  • 人才充足

2. Web 开发​

Java 在 Web 后端开发中占据重要地位:

  • Spring Boot:快速开发 Web 应用
  • Spring MVC:MVC 框架
  • 微服务架构:Spring Cloud
// Spring Boot 示例
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, World!";
}
}

3. 移动端开发​

虽然现在移动端主要是原生开发,但 Java 在 Android 开发中仍然重要:

  • Android 应用:使用 Java 或 Kotlin
  • Android SDK:基于 Java

4. 大数据与分布式系统​

Java 在大数据和分布式系统中广泛应用:

  • Hadoop:大数据处理框架
  • Spark:大数据计算引擎
  • Kafka:消息队列
  • Elasticsearch:搜索引擎

5. 云原生与微服务​

现代云原生应用大量使用 Java:

  • Spring Cloud:微服务框架
  • Kubernetes:容器编排(Java 应用)
  • 服务网格:Istio、Linkerd

JVM 的概念和作用​

什么是 JVM​

JVM(Java Virtual Machine,Java 虚拟机) 是 Java 程序运行的核心。它是一个虚拟的计算机,可以执行 Java 字节码。

JVM 的作用​

1. 跨平台运行​

JVM 是 Java 跨平台的基础:

Java 源代码 (.java)
↓ 编译
字节码 (.class)
↓ JVM 执行
Windows JVM / macOS JVM / Linux JVM
↓
运行结果

2. 内存管理​

JVM 负责管理程序的内存:

  • 堆内存:存储对象
  • 栈内存:存储局部变量和方法调用
  • 方法区:存储类信息
  • 垃圾回收:自动回收不再使用的对象

3. 性能优化​

JVM 通过以下技术优化性能:

  • JIT 编译:将热点代码编译为机器码
  • 自适应优化:根据运行情况动态优化
  • 内联优化:优化方法调用

JVM 的工作流程​

1. 加载(Loading)
↓
2. 验证(Verification)
↓
3. 准备(Preparation)
↓
4. 解析(Resolution)
↓
5. 初始化(Initialization)
↓
6. 使用(Using)
↓
7. 卸载(Unloading)

常见的 JVM 实现​

  • HotSpot:Oracle 官方 JVM,最常用
  • OpenJ9:IBM 开发的 JVM
  • GraalVM:高性能 JVM,支持多语言

为什么学习 Java​

1. 市场需求大​

Java 是就业市场最热门的编程语言之一:

  • 大量企业使用 Java
  • 薪资水平较高
  • 职业发展路径清晰

2. 生态完善​

Java 拥有丰富的生态系统:

  • 框架:Spring、Hibernate、MyBatis
  • 工具:Maven、Gradle、Jenkins
  • 库:Apache Commons、Guava

3. 长期稳定​

Java 已经存在近 30 年,仍然在持续发展:

  • 定期发布新版本
  • 向后兼容性好
  • 社区活跃

4. 学习资源丰富​

  • 官方文档完善
  • 教程和书籍众多
  • 社区支持好

小结​

Java 是一门强大的编程语言:

  • 核心特点:跨平台、面向对象、稳健、安全
  • 应用场景:企业应用、Web 开发、大数据、分布式系统
  • JVM 作用:跨平台运行、内存管理、性能优化
  • 学习价值:市场需求大、生态完善、长期稳定

关键要点:

  • Java 通过 JVM 实现跨平台
  • 面向对象是 Java 的核心思想
  • Java 适合大型企业应用开发
  • JVM 负责程序的执行和优化

理解了 Java 的基本概念,你就能更好地开始学习。在下一章,我们将了解 Java 的发展历史和生态系统。