📜  Java简介

📅  最后修改于: 2022-05-13 01:55:19.922000             🧑  作者: Mango

Java简介

JavaSun Microsystems的 James Gosling 开发 1991 年成立,后被甲骨文公司收购。它是一种简单的编程语言。 Java使编写、编译和调试程序变得容易。它有助于创建可重用的代码和模块化程序。

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

历史

Java 的历史非常有趣。它是一种创建于 1991 年的编程语言。 James Gosling、Mike Sheridan 和 Patrick Naughton,一个被称为Green 团队的 Sun 工程师团队于 1991 年创立了Java语言。Sun Microsystems于 1996 年发布了它的第一个公开实现,即Java 1.0 。它在流行的平台上提供免费的运行时间。 Java1.0 编译器由 Arthur Van Hoff 用Java重新编写,以严格遵守其规范。随着Java 2 的到来,新版本为不同类型的平台构建了多种配置。

1997 年,Sun Microsystems 与 ISO 标准机构接洽,后来将Java正式化,但很快就退出了。曾几何时,Sun 将其大部分Java实现免费提供,尽管它们处于专有软件状态。 Sun 通过销售Java Enterprise System 等专用产品的许可证从Java中获得收入。

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

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

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

在OAK这个名字之后,团队决定给它一个新名字,建议的词是Silk、Jolt、revolution、DNA、dynamic等。这些名字都很容易拼写也很有趣,但他们都想要这个名字体现科技的精髓。根据 James Gosling 的说法, JavaSilk一起名列前茅,而且由于Java是一个独特的名称,因此他们中的大多数人都喜欢它。

Java是印度尼西亚的一个岛屿的名称,在那里生产了第一批咖啡(名为Java咖啡)。这个名字是詹姆斯高斯林在他办公室附近喝咖啡时选择的。请注意, Java只是一个名称,而不是首字母缩略词。

Java术语

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

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

  • 编写程序是由像你我这样的Java程序员完成的。
  • 编译由JAVAC编译器完成,该编译器是Java开发工具包 (JDK) 中包含的主要Java编译器。它以Java程序为输入,生成字节码作为输出。
  • 在奔跑中 在程序的阶段, JVM执行编译器生成的字节码。

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

2、开发过程中的字节码:如前所述,JDK的Javac编译器将Java源代码编译成字节码,以便JVM执行。它被编译器保存为.class文件。要查看字节码,可以使用像javap这样的反汇编程序。

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

4. Java Runtime Environment (JRE): JDK 包含 JRE。我们电脑上安装JRE可以运行Java程序,但是我们不能编译它。 JRE 包括浏览器、JVM、小程序支持和插件。为了运行Java程序,计算机需要JRE。

5.垃圾收集器:在Java中,程序员不能删除对象。为了删除或重新收集内存,JVM 有一个名为Garbage Collector的程序。垃圾收集器可以回收未被引用的对象。因此, Java通过处理内存管理使程序员的生活变得轻松。但是,程序员应该注意他们的代码是否使用了已经使用了很长时间的对象。因为垃圾无法恢复被引用对象的内存。

6. ClassPath:类路径是Java运行时和Java编译器寻找要加载的.class文件的文件路径。默认情况下,JDK 提供了许多库。如果要包含外部库,则应将它们添加到类路径中。

Java的主要/主要特性

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

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

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

  • 抽象
  • 封装
  • 遗产
  • 多态性

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

4.健壮: Java语言健壮,即可靠。它的开发方式使得它在尽可能早地检查错误方面付出了很多努力,这就是为什么Java编译器能够检测到那些其他编程语言不易检测到的错误。使其健壮的Java的主要特性是垃圾收集、异常处理和内存分配。

5.安全:在Java中,我们没有指针,因此我们无法访问越界数组,即如果我们尝试这样做,它会显示ArrayIndexOutOfBound Exception 。这就是为什么在Java中不可能利用堆栈损坏或缓冲区溢出等几个安全漏洞的原因。

6.分布式:我们可以使用Java编程语言创建分布式应用程序。远程方法调用和 Enterprise Java Beans 用于在Java中创建分布式应用程序。 Java程序可以轻松地分布在一个或多个通过 Internet 连接相互连接的系统上。

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

8.可移植性:众所周知,在一台机器上编写的Java代码可以在另一台机器上运行。 Java的平台无关特性,其中它的平台无关字节码可以被带到任何平台执行,这使得Java具有可移植性。

9. 高性能: Java架构的定义方式是减少运行时的开销,有时Java使用即时(JIT)编译器,编译器按需编译代码,只编译那些需要的方法。称为使应用程序执行得更快。

10. 动态灵活性: Java完全面向对象使我们能够灵活地添加类、向现有类添加新方法,甚至通过子类创建新类。 Java甚至支持用其他语言(例如 C、C++)编写的函数,这些函数称为本机方法。

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

12. 一次编写,随处运行:如上所述, Java应用程序生成“.class”文件,该文件对应于我们的应用程序(程序),但包含二进制格式的代码。它提供了架构中立的易用性,因为字节码不依赖于任何机器架构。这是全球范围内在 IT 行业中使用Java的主要原因。

13.编译和解释的力量:大多数语言的设计都是有目的的,要么是编译语言,要么是解释语言。但是Java集成了巨大的力量,因为Java编译器将源代码编译为字节码,JVM 执行此字节码以加工依赖于操作系统的可执行代码。

例子

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

解释:

1. 注释:注释用于解释代码,在Java或 C 或 C++ 中以类似的方式使用。编译器忽略注释条目并且不执行它们。注释可以是单行或多行。

单行注释:
句法:

// Single line comment

多行注释:
句法:

/* Multi line comments*/

2. import Java.io.*:表示可以导入io包的所有类。 Java io 包提供了一组输入和输出流,用于将数据读取和写入文件或其他输入或输出源。

3.类:类包含程序中要使用的数据和方法。方法定义类的行为。类GFG在Java中只有一个方法 Main 。

4. static void Main(): static关键字告诉我们这个方法不需要实例化就可以访问。

5. void:关键字告诉这个方法不会返回任何东西。 main ()方法是我们应用程序的入口点。

6. System.in:这是用于从键盘或任何其他标准输入设备读取字符的标准输入流

7. System.out:这是标准输出流,用于在计算机屏幕等输出设备上生成程序结果。

8. println():这个方法在Java中也用于在控制台上显示文本。它在控制台上打印文本,光标移动到控制台下一行的开头。下一次打印从下一行开始。