Java 语言介绍

举报
GrayParis 发表于 2026/08/20 00:11:29 2026/08/20
【摘要】 Java 语言介绍说明文档 1. 概述Java 是一种广泛使用的面向对象编程语言,由 Sun Microsystems 公司于 1995 年正式发布。Java 的设计目标是“一次编写,到处运行”(Write Once, Run Anywhere),即编译后的字节码可以在任何支持 Java 虚拟机(JVM)的平台上运行,而无需重新编译。Java 语言语法风格与 C/C++ 类似,但去除了指针...

Java 语言介绍说明文档

1. 概述

Java 是一种广泛使用的面向对象编程语言,由 Sun Microsystems 公司于 1995 年正式发布。Java 的设计目标是“一次编写,到处运行”(Write Once, Run Anywhere),即编译后的字节码可以在任何支持 Java 虚拟机(JVM)的平台上运行,而无需重新编译。

Java 语言语法风格与 C/C++ 类似,但去除了指针、多重继承等复杂且易出错的语言特性,同时提供了自动内存管理(垃圾回收)、强类型检查、异常处理、多线程支持等机制,使得 Java 在安全性、健壮性和可移植性方面表现出色。

2. 发展历史

  • 1991 年:Sun Microsystems 启动“Green Project”,由 James Gosling 领导,最初为消费电子产品开发语言,命名为 Oak。
  • 1995 年:更名为 Java,并正式对外发布。同年 Netscape 浏览器宣布支持 Java Applet,Java 迅速流行。
  • 1996 年:发布 JDK 1.0。
  • 1998 年:发布 Java 2,分为 J2SE、J2EE、J2ME 三大平台。
  • 2006 年:Sun 宣布将 Java 开源,启动 OpenJDK 项目。
  • 2010 年:Oracle 收购 Sun Microsystems,Java 由 Oracle 继续维护和发展。
  • 2017 年:Oracle 宣布 Java 改为每 6 个月发布一个新版本,并引入长期支持(LTS)版本。
  • 当前:Java 已成为全球最流行的编程语言之一,广泛应用于企业级开发、移动开发(Android)、云计算、大数据等领域。

3. 语言特性

3.1 跨平台性

Java 源代码(.java 文件)编译后生成字节码(.class 文件),字节码由 JVM 解释执行。不同操作系统只需安装相应版本的 JVM,即可运行相同的字节码,从而实现跨平台。

3.2 面向对象

Java 是一种纯粹的面向对象语言(除基本数据类型外)。它支持封装、继承、多态、抽象等面向对象的核心概念。

3.3 自动内存管理

Java 通过垃圾回收器(Garbage Collector, GC)自动管理内存,程序员无需手动释放内存,降低了内存泄漏和悬空指针的风险。

3.4 强类型与静态类型

Java 是静态强类型语言,所有变量必须先声明类型,类型检查在编译期进行,有助于提前发现错误。

3.5 多线程支持

Java 内置多线程支持,提供 Thread 类、Runnable 接口以及 java.util.concurrent 包,方便开发并发程序。

3.6 安全性

Java 提供了字节码校验、安全管理器、类加载机制、沙箱机制等安全特性,适合网络环境下的应用开发。

3.7 健壮性

Java 的强类型检查、异常处理机制、垃圾回收机制等,使得程序在运行时更稳定,不易崩溃。

3.8 动态性

Java 支持反射、动态代理、注解等特性,可以在运行时获取类型信息并动态调用方法,增强了语言的灵活性。

4. Java 平台体系

Java 平台主要分为三个版本:

平台 全称 用途
Java SE Java Platform, Standard Edition 标准版,提供核心 API,用于桌面应用、基础服务等
Java EE / Jakarta EE Java Platform, Enterprise Edition 企业版,在 SE 基础上增加企业级组件,用于大型分布式系统
Java ME Java Platform, Micro Edition 微型版,用于嵌入式设备和移动设备(现已较少使用)

核心组件

  • JVM(Java Virtual Machine):Java 虚拟机,负责执行字节码,是跨平台的基础。
  • JRE(Java Runtime Environment):Java 运行时环境,包含 JVM 和核心类库,用于运行 Java 程序。
  • JDK(Java Development Kit):Java 开发工具包,包含 JRE 以及编译器(javac)、调试器、文档工具等开发工具。

5. 开发环境与工具

5.1 JDK 安装与配置

  1. 下载 JDK(推荐 OpenJDK 或 Oracle JDK 的 LTS 版本,如 Java 8、11、17、21)。
  2. 安装后配置环境变量 JAVA_HOMEPATH
  3. 在命令行输入 java -version 验证安装。

5.2 常用命令

  • 编译:javac HelloWorld.java
  • 运行:java HelloWorld
  • 打包:jar cvf app.jar *.class

5.3 集成开发环境(IDE)

  • IntelliJ IDEA:目前最流行的 Java IDE。
  • Eclipse:老牌开源 IDE。
  • NetBeans:Oracle 官方支持的 IDE。

5.4 构建工具

  • Maven:基于 XML 的项目管理和构建工具。
  • Gradle:基于 Groovy/Kotlin DSL 的现代化构建工具。

6. 基本语法示例

6.1 Hello World

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

6.2 变量与数据类型

int number = 10;
double price = 19.99;
char letter = 'A';
boolean flag = true;
String message = "Hello Java";

6.3 控制流程

// if-else
if (number > 0) {
    System.out.println("正数");
} else {
    System.out.println("非正数");
}

// for 循环
for (int i = 0; i < 5; i++) {
    System.out.println(i);
}

// while 循环
int count = 0;
while (count < 3) {
    System.out.println(count);
    count++;
}

7. 面向对象编程

7.1 类与对象

public class Person {
    // 字段
    private String name;
    private int age;

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

    // 方法
    public void introduce() {
        System.out.println("我是 " + name + ",今年 " + age + " 岁。");
    }
}

// 使用
Person p = new Person("张三", 25);
p.introduce();

7.2 继承

public class Student extends Person {
    private String school;

    public Student(String name, int age, String school) {
        super(name, age);
        this.school = school;
    }

    @Override
    public void introduce() {
        super.introduce();
        System.out.println("我在 " + school + " 上学。");
    }
}

7.3 接口

public interface Animal {
    void eat();
    void move();
}

public class Dog implements Animal {
    @Override
    public void eat() {
        System.out.println("狗吃肉");
    }

    @Override
    public void move() {
        System.out.println("狗跑步");
    }
}

8. 核心 API 与类库

Java 标准库(Java SE API)提供了丰富的类库,主要包括:

  • java.lang:基础类,如 StringMathSystemObjectThread 等(自动导入)。
  • java.util:集合框架、日期时间、随机数、扫描器等,如 ArrayListHashMapDateRandom
  • java.nio:高性能 I/O,支持缓冲区、通道、文件操作。
  • java.sql:数据库访问,如 ConnectionStatementResultSet
  • java.util.concurrent:并发编程工具,如线程池、锁、并发集合。
  • java.time:Java 8 引入的现代日期时间 API。

9. 内存管理与垃圾回收

Java 内存主要分为:

  • 堆(Heap):存储对象实例,是垃圾回收的主要区域。
  • 栈(Stack):存储方法调用和局部变量。
  • 方法区(Method Area)/ 元空间(Metaspace):存储类信息、常量、静态变量等。

垃圾回收器会自动回收不再被引用的对象。常见的垃圾回收器有 Serial GC、Parallel GC、CMS、G1 GC、ZGC 等。开发者可以通过 JVM 参数调优垃圾回收行为,但通常无需手动干预。

10. 应用领域

Java 广泛应用于以下领域:

  • 企业级应用:银行、保险、电商等大型系统,常用框架如 Spring、Hibernate、MyBatis。
  • Android 开发:Android 应用的主要开发语言(Kotlin 现在也是官方语言,但 Java 仍广泛使用)。
  • Web 开发:后端服务、REST API、微服务等。
  • 大数据:Hadoop、Spark、Flink、Elasticsearch 等大数据框架基于 Java/JVM。
  • 云计算:Spring Cloud、Kubernetes 生态中的 Java 服务。
  • 桌面应用:JavaFX、Swing 等。
  • 嵌入式系统:Java ME 及一些物联网设备。

11. 优缺点

优点

  • 跨平台性好,一次编写到处运行。
  • 面向对象,代码结构清晰,易于维护和扩展。
  • 生态成熟,拥有大量框架、工具和社区支持。
  • 性能较高,JIT 编译技术使 Java 程序运行速度接近原生代码。
  • 安全性高,适合网络环境。
  • 多线程和并发支持完善。

缺点

  • 语法相对冗长,开发效率低于一些现代语言(如 Python、Kotlin)。
  • 内存占用较高,启动速度相对较慢。
  • 不支持底层硬件操作(如指针),不适合系统级编程。
  • 某些历史遗留设计(如检查异常、泛型擦除)带来一定复杂性。

12. 版本演进与 LTS

Java 版本更新频繁,重要的长期支持(LTS)版本:

版本 发布时间 主要特性
Java 8 2014 年 3 月 Lambda 表达式、Stream API、新日期时间 API、默认方法
Java 11 2018 年 9 月 局部变量类型推断(var)、HTTP Client API、ZGC 实验
Java 17 2021 年 9 月 密封类、模式匹配(预览)、增强伪随机数生成器
Java 21 2023 年 9 月 虚拟线程(正式)、记录模式、模式匹配 switch

非 LTS 版本每 6 个月发布,适合体验新特性,生产环境建议使用 LTS 版本。

13. 总结

Java 是一门成熟、稳定、生态完善的面向对象编程语言,凭借其跨平台性、安全性、健壮性和丰富的类库,在企业级开发、大数据、云计算、移动开发等领域占据重要地位。尽管语法相对冗长,但 Java 不断演进,引入 Lambda、模块化、虚拟线程等现代特性,使其在当今快速变化的技术环境中依然保持强大的竞争力。对于初学者和职业开发者而言,Java 都是一门值得深入学习的语言。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。