什么是 Java?

2025年3月31日 | 阅读 9 分钟

Java 是一种由 James Gosling 在 Sun Microsystems, Inc. 于 1991 年开发的高级、通用、面向对象且安全的编程语言。它正式名称为 OAK。1995 年,Sun Microsystem 将名称更改为 Java。2009 年,Sun Microsystem 被 Oracle Corporation 收购。

由于其平台无关性,Java 是一种流行的面向对象编程语言,它使程序员能够创建可在安装了 Java 虚拟机 (JVM) 的任何设备上运行的代码。强类型、自动内存管理(垃圾回收)、庞大的标准库以及其他特性使其成为开发在线服务、Android 移动应用、企业级应用程序等的热门选择。它在多个行业中广泛流行,这归因于其强大的安全功能,包括沙箱环境。

Java 的版本

Java 的每个版本都有不同的功能。

  1. Java 标准版 (JSE): 用于创建桌面计算机程序。
  2. Java 企业版 (JEE): 用于创建在服务器上运行的大型程序,并管理高流量和复杂事务。
  3. Java 微型版 (JME): 用于为机顶盒、手机和家电等小型设备开发应用程序。
  4. Java Card: 是 Java 的一个专用版本,专为智能卡和其他小型内存设备设计,可在 SIM 卡和信用卡等设备中提供安全元素。
  5. JavaFX: 虽然 JavaFX 本身不是 Java 的一个版本,但它是用于创建富互联网应用程序 (RIA) 的平台,并且通常与 Java SE 一起用于桌面和 Web 应用程序开发。它提供了构建用户界面和多媒体内容的工具。

Java 应用程序的类型

使用 Java 编程可以创建四种类型的 Java 应用程序。

  • 独立应用程序: Java 独立应用程序使用 AWT、Swing 和 JavaFX 等 GUI 组件。这些组件包含按钮、列表、菜单、滚动面板等。它也被称为桌面应用程序。
    这些程序可以像简单的实用工具一样,也可以像复杂的生产力辅助工具一样。平台无关的独立 Java 应用程序被编译成可执行文件,可在安装了 Java 虚拟机 (JVM) 的任何计算机上运行。
  • 企业应用程序: 分布式应用程序称为企业应用程序。企业应用程序经常包含 Java 消息服务 (JMS)、Java 持久性 API (JPA)、Java 消息服务 (EJB) 和 JavaServer Faces (JSF) 等技术。
    Java EE 提供了一系列 API 和规范,用于构建可扩展、安全和事务性系统,包括 Web 服务、消息传递系统和企业集成解决方案。
  • Web 应用程序: 在服务器上运行的应用程序称为 Web 应用程序。我们使用 JSP、Servlet、Spring 和 Hibernate 技术来创建 Web 应用程序。
    Servlet、JavaServer Pages (JSP)、JavaServer Faces (JSF)、Spring Framework 和 Hibernate 等技术通常用于 Java 在线应用程序的开发。这些应用程序的示例包括简单的网站、复杂的在线门户、电子商务平台、内容管理系统 (CMS) 和企业资源规划 (ERP) 系统。Java Web 应用程序遵循服务器端编程的指南,其中客户端的请求由服务器处理,服务器创建动态内容并响应客户端。
  • 移动应用程序: Java ME 是一个跨平台,用于开发可在智能手机上运行的移动应用程序。Java 是 Android 应用开发平台。
    此外,Java 是用于 Android 应用创建的主要编程语言,它使程序员能够为 Android 操作系统构建各种各样的移动应用程序。

Java 平台

Java 平台是一组程序。它有助于开发和运行用 Java 编程语言编写的程序。Java 平台包括一个执行引擎、一个编译器和一组库。Java 是一种平台无关的语言。

  1. Java 虚拟机 (JVM): JVM 是 Java 平台的重要组成部分,负责执行 Java 字节码。它抽象了底层硬件和操作系统,为 Java 应用程序提供了统一的运行时环境。JVM 实现适用于不同平台,允许 Java 程序在不同系统上运行而无需修改。
  2. Java 开发工具包 (JDK): JDK 是一个软件开发工具包,包含开发 Java 应用程序所需的工具。它包括 Java 编译器 (javac)、Java 运行时环境 (JRE) 以及各种开发工具,如调试器、分析器和文档生成器。JDK 还包括 Java API(应用程序编程接口)文档,其中提供了关于 Java 标准库中可用类和方法的详细信息。
  3. Java 标准库: Java 平台提供了一套丰富的标准库,称为 Java 标准版 (Java SE) API。这些库提供了广泛的功能,用于处理输入/输出操作、网络、数据操作、并发和图形用户界面 (GUI) 开发等任务。通过利用这些库,开发人员可以轻松地构建健壮且功能丰富的 Java 应用程序。

Java 的特性

  1. 简单: Java 是一种简单的语言,因为它语法简单、清晰且易于理解。C++ 中复杂和模糊的概念要么被消除,要么在 Java 中重新实现。例如,Java 中不使用指针和运算符重载。
  2. 面向对象: 在 Java 中,一切都是对象的形式。这意味着它具有某些数据和行为。程序至少需要一个类和一个对象。
  3. 健壮: Java 努力在运行时和编译时检查错误。它使用称为垃圾回收器的强大内存管理系统。异常处理和垃圾回收功能使其更加健壮。
  4. 安全: Java 是一种安全的编程语言,因为它没有显式的指针,程序在虚拟机中运行。Java 包含一个安全管理器,用于定义 Java 类的访问权限。
  5. 平台无关: Java 保证代码一次编写,随处运行。这种字节码是平台无关的,可以在任何机器上运行。
    Basics of Java
  6. 可移植: Java 字节码可以被带到任何平台。没有依赖于实现的特性。所有与存储相关的内容都已预先定义,例如,基本数据类型的大小。
  7. 高性能: 虽然 Java 通常被认为是一种解释型语言,但现代 JVM 实现包含了复杂的优化技术,其性能可以与原生编译的语言相媲美。即时 (JIT) 编译、自适应优化和其他运行时优化都有助于 Java 应用程序的高性能。
  8. 分布式: Java 还具有网络功能。它专为互联网的分布式环境而设计,因为它支持 TCP/IP 协议。它可以在互联网上运行。EJB 和 RMI 用于创建分布式系统。
  9. 多线程: Java 还支持多线程。这意味着一次处理多个任务。多线程对于构建响应迅速且可扩展的应用程序至关重要,例如 Web 服务器,需要同时为多个客户端提供服务。
  10. 动态: Java 支持动态加载类和动态内存分配,从而实现了反射和运行时类型信息等功能。反射允许程序在运行时检查或修改自身的结构和行为,从而促进高级元编程技术。
  11. 可扩展: Java 的可扩展架构使其适用于开发从小型实用工具到大型企业系统的各种应用程序。其模块化设计鼓励代码组织和重用,从而更容易随着时间的推移管理和维护复杂的项目。

OOPs (面向对象编程系统)

面向对象编程是一种通过将复杂问题分解为小型子问题来解决问题的方法。对象是现实世界中的实体。通过使用对象可以更容易地开发程序。在 OOPs 中,我们以结构化的方式使用类和对象来创建程序。

  1. 类: 类是模板、蓝图或原型,它定义了对象的数据成员和方法。对象是类的实例。我们可以使用 class 关键字定义一个类。
  2. 对象: 对象是可区分的现实世界实体。例如,一张桌子或一个圆都可以被视为一个对象。对象具有唯一的行为、身份和状态。具有当前值的字段代表对象的状态(也称为其属性)。
  3. 抽象: 抽象是一种隐藏用户不相关信息的方法。例如,司机只知道如何开车;不需要知道汽车是如何运行的。我们可以使用 abstract 关键字使类成为抽象类。在 Java 中,我们使用抽象类和接口来实现抽象。
  4. 封装: 封装是将数据和函数绑定到一个单元的过程。类是封装的一个例子。在 Java 中,Java Bean 是一个完全封装的类。
  5. 继承: 继承是一种类获取另一个类的所有特性的机制。我们可以使用 extends 关键字来实现继承。它促进了代码的重用。
  6. 多态: 多态是指以多种形式出现的能力。换句话说,单一行为以不同的方式表现。例如,一个男孩在教室里表现得像个学生,而在家里表现得像个儿子。多态有两种类型:运行时多态和编译时多态。
  7. 方法重写: 继承的一个特性称为“方法重写”,它允许子类提供对父类中已定义方法的独特实现。当子类重写方法时,它用自己的实现替换从父类继承的实现。通过方法重写,子类可以改变或扩展继承方法的函数,从而实现运行时多态。
  8. 方法重载: Java 的“方法重载”特性使一个类可以拥有多个同名但参数列表不同的方法。通过允许重载方法具有不同数量或类型的参数,开发人员可以根据不同的参数组合提供多种执行方法的方式。方法重载提高了代码的可读性、灵活性和可重用性。

Java 基础选择题

1. 下列哪项最能描述 Java 中的封装?

  1. 对象根据上下文表现出多种形式的能力。
  2. 将数据和函数组合成一个单元的过程。
  3. 一个类从另一个类继承属性和行为的机制。
  4. 隐藏用户不相关细节并仅暴露必要功能的技巧。
 

答案:B

解释: 封装是将数据(属性)和操作数据的函数(方法)捆绑到一个单元(类)的概念。然后,该单元仅通过定义的接口进行访问,从而保护数据免受外部干扰和滥用。


2. Java 中的多态是什么?

  1. 隐藏实现细节并仅显示功能的进程。
  2. 方法根据调用它的对象执行不同操作的能力。
  3. 从超类继承属性和行为的技巧。
  4. 一个类获取另一个类属性的机制。
 

答案:B

解释: 多态允许方法在派生类中以不同的方式实现。它使单个方法名称能够根据调用它的对象表示不同的行为,通过方法重写(运行时多态)或方法重载(编译时多态)来实现。


3. Java 中的继承主要用于

  1. 将数据和函数组合成一个单元。
  2. 使一个类能够获取另一个类的属性和行为。
  3. 隐藏用户不相关的细节。
  4. 创建对象的多种形式。
 

答案:B

解释: 继承允许一个类(子类)继承另一个类(超类)的属性和方法,从而促进代码重用并建立类之间的“is-a”关系。


4. 使用哪个关键字来实现 Java 中的抽象

  1. abstract
  2. final
  3. static
  4. extends
 

答案:A

解释: Java 中的抽象是通过抽象类和接口实现的。抽象类可以包含抽象方法(无实现),其子类必须实现这些方法,而接口声明抽象方法,实现类必须定义这些方法。


5. “面向对象编程”这个术语代表什么?

  1. 通过将复杂问题分解为更小的子问题来解决。
  2. 使用对象和类实现算法。
  3. 一起使用变量和函数来形成一个程序。
  4. 在程序中按顺序执行代码。
 

答案:B

解释: 面向对象编程 (OOP) 涉及将现实世界实体建模为具有数据(属性)和行为(方法)的对象,这些对象相互交互以解决复杂问题。OOP 促进代码的模块化、可重用性和易维护性。


下一个主题Java 教程