Java 入门

2025年4月2日 | 阅读10分钟

Java 是一种面向对象、面向类的编程语言。该语言旨在尽可能减少实现依赖。使用该语言的目的是让开发人员免于为每个平台编写代码。WORA(一次编写,随处运行)这个术语经常与该语言相关联。这意味着当我们编译 Java 代码时,我们会得到字节码(.class 文件),然后可以在支持 Java 的不同平台上执行(无需再次编译)。Java 语言于 1995 年开发。它主要用于开发 Web、桌面和移动设备。Java 语言以其健壮性、安全性和简洁性而闻名。它旨在尽可能减少实现依赖。

历史

Java 语言有着非常有趣的历史。Patrick Naughton、Mike Sheridan 和 Jame Gosling(被称为“绿色团队”)于 1991 年开始开发 Java。这些人是 **Sun Microsystems** 的工程师。1996 年,第一个公共实现作为 Java 1.0 发布。Java 1.0 的编译器由 Arthur Van Hoff 重写,以严格遵守其规范。随着 Java 2 的推出,新版本为各种平台构建了多个不同的配置。值得注意的是,James Gosling 也被称为 Java 之父。

1997 年,Sun Microsystems 向 ISO 标准组织提交了将 Java 标准化的申请,但很快撤回了。有一段时间,Sun Microsystems 免费提供了其大部分 Java 实现,尽管它拥有专有软件的地位。

应用程序

Java 应用程序的实现包括以下步骤:

  1. 程序创建(编写代码)
  2. 程序编译。
  3. 执行编译后的代码。

值得注意的是,JDK(Java Development Kit)应正确安装在系统上,并且还应设置好路径。

程序创建

可以使用文本编辑器(Notepad++ 或 NotePad 或其他编辑器也可以)或 IDE(Eclipse、NetBeans 等)编写 Java 程序。

文件名: TestClass.java

编写上述代码并将文件保存为 TestClass。文件应具有 .java 扩展名。

程序编译

打开命令提示符,然后键入 javac TestClass.javajavac 是使 Java 编译器开始工作的命令,用于编译 Java 程序。在命令之后,我们必须 put 需要编译的文件名。在本例中,它是 TestClass.java。键入后,按 Enter 键。如果一切顺利,将生成一个 TestClass.class 文件,其中包含字节码。如果程序中有错误,编译器会指出,并且不会创建 TestClass.class

运行/执行程序

创建 .class 文件后,键入 java TestClass 运行程序。程序输出将显示在控制台上,如下所示。

输出

Hello World is my first Java Program.

Java 这个名字

最初,该语言被命名为 Oak。然而,团队决定应该给该语言起一个新名字,并建议了 DNA、Revolutionary、Jolt、Dynamic、Silk 等词。所有这些名字都很有趣且易于拼写。但这些名字缺少了团队想要的语言的精髓。根据 James Gosling 的说法,Java 和 Silk 是两个最受欢迎的选择,因为 Java 有一个独特的名字,大多数人都更喜欢它。

Java 也是印度尼西亚的一个岛屿名称,那里生产咖啡(名为 Java Coffee)。James Gosling 选择 Java 这个名字是因为他当时正在办公室附近喝咖啡。读者应注意,Java 不是首字母缩略词。它只是一个名字。

Java 中的术语

JVM (Java 虚拟机): JVM 是一个规范,它提供了一个运行时环境,Java 字节码在该环境中执行。**每当使用命令** java时,就会创建一个 JVM 实例。JVM 提供了内存区域、寄存器集、类文件格式和致命错误报告的定义。请注意,JVM 是平台相关的。

字节码: 在介绍部分已经讨论过,Java 编译器编译 Java 代码以生成 .class 文件或字节码。必须使用 javac 命令来调用 Java 编译器。

Java Development Kit (JDK): 这是完整的 Java Development Kit,包含一切,包括 JRE(Java Runtime Environment)、编译器、Java 文档、调试器等。必须在计算机上安装 JDK 才能创建、编译和执行 Java 程序。

Java Runtime Environment (JRE): JRE 是 JDK 的一部分。如果系统只安装了 JRE,那么用户只能运行程序。换句话说,只有 java 命令有效。Java 程序将无法编译(javac 命令将不起作用)。

垃圾回收器: 程序员无法在 Java 中删除对象。为了做到这一点,JVM 有一个称为垃圾回收器的程序。垃圾回收器回收或删除未引用的对象。垃圾回收器使开发人员/程序员的生活轻松,因为他们不必担心内存管理。

Classpath: 顾名思义,Classpath 是 Java 编译器和 Java 运行时搜索 .class 文件以加载的路径。JDK 提供了许多内置库。但是,如果有人想使用外部库,应该将其添加到 classpath 中。

Java 的主要特性

平台无关性: Java 编译器不是直接生成 .exe 文件,而是将 Java 代码转换为字节码,并且可以在不同平台上执行此字节码而没有任何问题,这使得 Java 成为一种平台无关的语言。请注意,为了执行字节码,必须在系统上安装 JVM,而 JVM 是平台相关的。

面向对象编程语言: 面向对象编程的概念基于对象和类的概念。此外,面向对象编程还存在几个特性。下面列出其中一些。

  • 抽象
  • 继承
  • 多态
  • 封装

Java 语言还广泛使用类和对象的概念。此外,上面提到的所有这些特性都存在于 Java 中,这使得 Java 成为一种面向对象编程语言。请注意,Java 是一种面向对象编程语言,但并非 100% 面向对象。

简单: Java 被认为是一种简单的语言,因为它没有指针、多重继承、显式内存分配或运算符重载的概念。

健壮

Java 语言非常健壮。健壮意味着可靠。Java 语言的开发方式是在尽可能早的时候进行大量的错误检查。正是因为这个原因,该语言可以识别出其他编程语言中难以识别的错误。异常处理、垃圾回收和内存分配是使 Java 健壮的特性。

安全: Java 语言中无法利用缓冲区溢出或堆栈损坏等几种错误。我们知道 Java 语言没有指针。因此,无法访问越界数组。如果有人尝试这样做,则会引发 ArrayIndexOutofBoundException。此外,Java 程序的执行发生在与操作系统完全独立的 Java 环境中,这使得该语言更加安全。

分布式: 可以借助 Java 语言创建分布式应用程序。企业 Java Bean 和远程方法调用 (RMI) 用于创建分布式应用程序。Java 程序可以轻松地在通过互联网连接的一个或多个系统之间进行分发。

多线程: Java 语言支持多线程。多线程特性支持程序两个或多个部分的并发执行。因此,CPU 的利用率最大化。

可移植性: 我们知道 Java 是一种平台无关的语言。因此,在一个系统上生成的字节码可以在任何其他平台上执行,这使得 Java 具有可移植性。

高性能: Java 的架构设计旨在减少运行时开销。在某些地方,Java 使用 JIT(即时)编译器,在按需编译代码时,编译器只编译被调用的方法,从而加快应用程序的执行速度。

动态灵活性: Java 语言遵循面向对象编程范例,这使我们能够自由地将新方法和类添加到现有类中。Java 语言还支持 C/C++ 语言中提到的函数,这些函数通常被称为本地方法。

沙箱执行: 众所周知,Java 程序在不同的环境中执行,这使得用户可以使用字节码验证器执行自己的应用程序而不影响底层系统。字节码验证器通过检查代码是否存在访问违规来提供额外的安全性。

一次编写,随处运行: Java 代码由编译器编译以获得 .class 文件或字节码,该字节码与任何机器架构完全无关。

编译和解释语言: 大多数语言要么是解释型语言,要么是编译型语言。然而,在 Java 语言的情况下,它是编译型语言,也是解释型语言。Java 代码被编译以获得字节码,然后字节码由基于软件的解释器解释。

一些 Java 程序

下面介绍了一些基本的 Java 程序。

程序 - 1

文件名: DemoClass.java

输出

Welcome to javaTpoint.

程序 - 2

文件名: AddMul.java

输出

Sum = 26
Product = 168

程序 - 3

文件名: ComputeAv.java

输出

Input the First Number: 
4
Input the Second Number: 
5
Average = 4.5

程序 - 4

文件名: FahrenheitCelsius.java

输出

Input the temperature in Celsius:
15
Temperature in Fahrenheit is: 59.0

程序 - 5

文件名: TriangleArea.java

输出

Enter the value of triangle's three sides:
15
16
17
Triangles Area: 109.98181667894016

上述程序中使用的各种关键字说明

//: 它用于在代码中添加注释,使读者更容易阅读。编译器在编译程序时会完全忽略注释。对于多行注释,我们使用:/* … */

main() 方法: 程序中最重要的方法,执行从这里开始。因此,所有逻辑都必须包含在 main 方法中。如果 main() 方法不包含逻辑,那么逻辑将存在于其他方法中,但必须直接或间接从 main() 方法调用该方法。

class: 关键字 class 用于在 Java 语言中声明类。

void: 表示函数或方法将不返回任何内容。

System.out.println(): 用于在控制台上打印语句、模式等。

String argvs[]: 这是一个命令行参数,用于获取输入。

public: 这是一个访问修饰符关键字。当它应用于方法时,该方法对所有人都可见。其他访问修饰符关键字是 private、protected 和 default。

import java.io.*: 表示包 java.io 中的所有类都已导入。java.io 包提供了用于读取和写入文件数据的输入和输出流。* 表示全部。如果只想导入特定类,则将 * 替换为类的名称。

System.in: 这是输入流,用于从输入设备(通常是我们这里的键盘)读取字符。

static void main(): static 关键字表示该方法可以在不实例化类的情况下访问。

System.out: 就像 System.in 用于读取字符一样,System.out 用于在输出设备(如计算机屏幕)上给出程序结果。

double, int: 不同的数据类型,int 用于整数,double 用于双精度数。其他数据类型有 char、boolean、float 等。

println(): 该方法在控制台上显示文本。该方法将文本打印到屏幕,然后移动到下一行。对于下一行,使用 ln。如果我们不希望光标移到下一行,请使用 print() 方法。


下一个主题Java Lambda foreach