Java 入门

原文:https://www.geeksforgeeks.org/introduction-to-java/

JAVA 由詹姆斯·高斯林于 1991 年太阳微系统T4 公司开发,后来被甲骨文公司收购。这是一种简单的编程语言。Java 使编写、编译和调试编程变得容易。它有助于创建可重用的代码和模块化程序。

Java 是一种基于类、面向对象的编程语言,旨在尽可能减少实现依赖。一种通用的编程语言,让开发者可以在任何地方编写一次运行的代码,即编译后的 Java 代码,可以在所有支持 Java 的平台上运行。Java 应用程序被编译成字节码,可以在任何 Java 虚拟机上运行。Java 的语法类似于 c/c++。

历史

Java 的历史非常有趣。它是一种创建于 1991 年的编程语言。被称为绿色团队的 Sun 工程师团队、迈克·谢里丹和帕特里克·诺顿在 1991 年发起了 Java 语言。太阳微系统公司在 1996 年发布了它的第一个公开实现作为 Java 1.0 。它在流行的平台上提供免费的运行时间。Java1.0 编译器由 Arthur Van Hoff 用 Java 重新编写,以严格遵守其规范。随着 Java 2 的到来,新版本为不同类型的平台构建了多种配置。

1997 年,太阳微系统公司接触了国际标准化组织标准机构,后来正式确定了 Java,但它很快退出了这个过程。有一段时间,Sun 免费提供大部分 Java 实现,尽管它们是专有软件。Sun 通过销售专门产品(如 Java 企业系统)的许可证从 Java 获得收入。

2006 年 11 月 13 日,Sun 将其大部分 Java 虚拟机作为免费的开源软件发布。2007 年 5 月 8 日,Sun 完成了这个过程,使其 JVM 的所有核心代码都可以在开源分发条款下使用。

创建 java 的原则是简单、健壮、安全、高性能、可移植、多线程、解释、动态等。詹姆斯小鹅在 1995 年开发了 Java,被称为 Java 之父。目前,Java 应用于移动设备、互联网编程、游戏、电子商务等。

Java 编程语言被命名为 JAVA。为什么呢?

在 OAK 这个名字之后,团队决定给它起一个新名字,建议的词有 Silk、Jolt、revolutionary、DNA、dynamic 等。所有这些名字都很容易拼写,说起来也很有趣,但他们都希望这个名字能反映技术的本质。按照詹姆斯·高斯林的说法,爪哇和 T2 丝绸是顶级的名字,因为爪哇是一个独特的名字,所以大多数人更喜欢它。

爪哇是印度尼西亚一个的名字,第一种咖啡(命名为爪哇咖啡)就是在这里生产的。这个名字是詹姆斯·高斯林在办公室附近喝咖啡时选择的。请注意,Java 只是一个名称,而不是缩写。

Java 术语

在学习 Java 之前,必须熟悉 Java 的这些常用术语。

*1。Java 虚拟机(JVM):* 这一般被称为 JVM 。程序有三个执行阶段。它们被编写、编译和运行程序。

Writing programs is done by java programmers like you and me. Compile javac compiler, which is the main Java compiler included in Java development kit (JDK). It takes Java program as input and generates bytecode as output.* In the running stage of the program, JVM executes the bytecode generated by the compiler.

现在,我们理解了 Java 虚拟机的功能是执行编译器生成的字节码。每个操作系统都有不同的 JVM,但是它们在执行字节码后产生的输出在所有操作系统中都是相同的。这就是为什么 Java 被称为独立于平台的语言。****

*2。*中的字节码开发过程:如前所述,JDK 的 javac 编译器将 Java 源代码编译成字节码,以便 JVM 可以执行。保存为。类文件由编译器生成。要查看字节码,可以使用类似【javap】的反汇编器。

*3。Java 开发工具包(JDK):* 当我们使用术语 JDK 时,当我们了解字节码和 JVM 时。因此,顾名思义,它是一个完整的 java 开发工具包,包括编译器、java 运行时环境(JRE)、Java 调试器、Java 文档等一切。为了用 java 执行程序,我们需要在计算机上安装 JDK,以便创建、编译和运行 java 程序。

*4。Java 运行时环境(JRE):* JDK 包括 JRE。我们计算机上的 JRE 安装允许 java 程序运行,但是,我们不能编译它。JRE 包括浏览器、JVM、小程序支持和插件。为了运行 java 程序,计算机需要 JRE。

*5。垃圾收集器:*在 Java 中,程序员不能删除对象。删除或回忆内存 JVM 有一个名为 垃圾收集器 的程序。垃圾收集器可以回收未被引用的对象的。因此,Java 通过处理内存管理使程序员的生活变得简单。然而,程序员应该小心他们的代码,无论他们是否使用已经使用了很长时间的对象。因为垃圾不能恢复被引用对象的内存。

*6。类路径:*类路径 是 java 运行时和 Java 编译器查找的文件路径。类文件进行加载。默认情况下,JDK 提供许多图书馆。如果您想包含外部库,应该将它们添加到类路径中。

Java 的主要特性

*1。平台无关:*编译器将源代码转换为字节码,然后 JVM 执行编译器生成的字节码。这个字节码可以在任何平台上运行,无论是 Windows、Linux 还是 macOS,这意味着如果我们在 Windows 上编译一个程序,那么我们就可以在 Linux 上运行它,反之亦然。每个操作系统都有不同的 JVM,但是所有操作系统在执行字节码后产生的输出是相同的。这就是为什么我们称 java 为独立于平台的语言。

*2。面向对象编程语言:*用对象集合的方式组织程序是面向对象编程的一种方式,每一个对象都代表一个类的实例。

面向对象编程的四个主要概念是:

[Abstract] [package] [Inherit] polymorphic

*3。* 简单: Java 是简单的语言之一,因为它没有指针、运算符重载、多重继承、显式内存分配等复杂特性。

*4。* 健壮: Java 语言健壮意味着可靠。它的开发方式是尽可能早地投入大量精力检查错误,这就是为什么 java 编译器能够检测到其他编程语言不容易检测到的错误。java 的主要特性是垃圾收集、异常处理和内存分配。

*5。* Secure: 在 java 中,我们没有指针,所以我们不能访问越界数组,也就是说,如果我们尝试这样做,它会显示arrayindexoofbound 异常。这就是为什么像堆栈损坏或缓冲区溢出这样的安全缺陷在 Java 中是不可能被利用的。

*6。* 分布式:我们可以使用 java 编程语言创建分布式应用程序。远程方法调用和企业 Java Beans 用于在 Java 中创建分布式应用程序。java 程序可以很容易地分布在一个或多个通过互联网连接相互连接的系统上。

*7。* 多线程: Java 支持多线程。这是一个 Java 特性,允许同时执行程序的两个或多个部分,以最大限度地利用 CPU。

*8。* 便携:众所周知,在一台机器上编写的 java 代码可以在另一台机器上运行。java 的独立于平台的特性使得它的独立于平台的字节码可以被带到任何平台上执行,这使得 java 具有可移植性。

*9。高性能:* Java 架构的定义方式是在运行时减少开销,在某些时候 Java 使用 Just In Time (JIT)编译器,编译器按需编译代码基础,只编译那些被称为让应用程序执行得更快的方法。

*10。动态灵活性:*完全面向对象的 Java 让我们可以灵活地在现有类中添加类、新方法,甚至通过子类创建新类。Java 甚至支持用其他语言编写的函数,如 C、C++等,它们被称为本机方法。

*11 时。沙盒执行:* Java 程序在一个独立的空间中运行,允许用户在字节码验证器的帮助下执行他们的应用程序,而不会影响底层系统。字节码验证器还提供了额外的安全性,因为它的作用是检查代码是否有任何违规访问。

*12 时。写一次运行在任何地方:*如上所述,java 应用程序生成。“类”文件,它对应于我们的应用程序(程序),但包含二进制格式的代码。因为字节码不依赖于任何机器架构,所以它提供了与架构无关的易用性。这是 java 在全球范围内用于进取型 It 行业的主要原因。

*13。编译和解释的能力:*大多数语言都是有目的地设计的,要么是编译语言,要么是解释语言。但是,随着 java 编译器将源代码编译成字节码,JVM 将该字节码执行成与机器操作系统相关的可执行代码,Java 集成了越来越大的力量。

*示例*

Java

// Demo Java program

// Importing classes from packages
import java.io.*;

// Main class
public class GFG {

    // Main driver method
    public static void main(String[] args)
    {

        // Print statement
        System.out.println("Welcone to GeeksforGeeks");
    }
}

*输出*

Welcone to GeeksforGeeks