AVA 由 Sun Microsystems Inc 的 James Gosling 于1995 年开发,后来被 Oracle Corporation 收购。它是一种简单的编程语言。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 的原则是简单、健壮、安全、高性能、可移植、多线程、解释、动态等。1995 年,Java 由被誉为 Java 之父的 James Gosling 开发。目前,Java 用于移动设备、互联网编程、游戏、电子商务等。
Java 编程语言为什么被命名为 JAVA?
在 OAK 这个名字之后,团队决定给它起一个新名字,建议的词是 Silk、Jolt、revolution、DNA、
dynamic 等。这些名字都容易拼写,说起来比较有趣,但他们都想要这个名字体现科技的本质。根据 James Gosling 的说法,Java 与 Silk 一起名列前茅,因为 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 Development Kit(JDK):当我们学习字节码和 JVM 时,我们使用 JDK 这个术语。所以,顾名思义,它是一个完整的 Java 开发工具包,包括编译器、Java 运行时环境 (JRE)、Java 调试器、Java 文档等。为了在 Java 中执行程序,我们需要在我们的计算机以创建、编译和运行 java 程序。
4、Java 运行时环境(JRE): JDK 包括 JRE。在我们的计算机上安装 JRE 允许 java 程序运行,但是我
们无法编译它。JRE 包括浏览器、JVM、小程序支持和插件。为了运行 java 程序,计算机需要 JRE。
5.垃圾收集器:在 Java 中,程序员不能删除对象。要删除或回收该内存,JVM 有一个名为 Garbage Collector 的程序。垃圾收集器可以重新收集未引用的对象。因此,Java 通过处理内存管理使程序员的生活变得轻松。但是,程序员应该注意他们的代码是否使用了已经使用了很长时间的对象。因为垃圾不能恢复被引用对象的内存。
6、ClassPath:classpath 是 java 运行时和 java 编译器寻找.class 文件加载的文件路径。默认情况下,JDK 提供了许多库。如果要包含外部库,则应将它们添加到类路径中。
Java 的主要/主要特性
1、Platform Independent: 编译器将源代码转换为字节码,然后 JVM 执行编译器生成的字节码。这个字节码可以在任何平台上运行,无论是 Windows、Linux、macOS,这意味着如果我们在 Windows 上编译程序,那么我们可以在 Linux 上运行它,反之亦然。每个操作系统都有不同的 JVM,但所有操作系统在执行字节码后产生的输出是相同的。这就是我们称 java 为平台无关语言的原因。
2、面向对象编程语言: 用对象的集合来组织程序是面向对象编程的一种方式,每个对象代表一个类的实例。
面向对象编程的四个主要概念是:
- 抽象
- 封装
- 遗产
- 多态性
3、简单: Java 是一种简单的语言,因为它没有指针、运算符重载、多重继承、显式内存分配等复杂功能。
4、健壮: Java 语言是健壮的,这意味着可靠。它的开发方式是尽可能早地检查错误,这就是为什么 java 编译器能够检测到其他编程语言不易检测到的错误。java 使其健壮的主要特性是垃圾收集、异常处理和内存分配。
5、安全: 在 java 中,我们没有指针,所以我们不能访问越界数组,即如果我们尝试这样做会显示 ArrayIndexOutOfBound Exception 。这就是为什么在 Java 中无法利用堆栈损坏或缓冲区溢出等安全漏洞。
6、分布式: 我们可以使用 java 编程语言创建分布式应用程序。远程方法调用和企业 Java Bean 用于在 Java 中创建分布式应用程序。Java 程序可以很容易地分布在一个或多个通过 Internet 连接相互连接的系统上。
7、多线程:Java 支持多线程。它是一种 Java 功能,允许同时执行程序的两个或多个部分,以最大限度地利用 CPU。
8、可移植性: 众所周知,在一台机器上编写的 java 代码可以在另一台机器上运行。java的平台无关特性,它的平台无关字节码可以被带到任何平台上执行,这使得 java 具有可移植性。
9、高性能: Java 架构的定义方式是它减少了运行时的开销,有时 java 使用即时 (JIT) 编译器,编译器按需编译代码基础知识,只编译那些方法称为使应用程序执行得更快。
10、动态灵活性: Java 完全面向对象使我们可以灵活地向现有类添加类、新方法,甚至通过子类创建新类。Java 甚至支持用其他语言编写的函数,例如 C、C++,它们被称为本地方法。
11、沙盒执行: Java 程序在单独的空间中运行,允许用户在字节码验证器的帮助下执行他们的应用程序而不会影响底层系统。字节码验证器还提供额外的安全性,因为它的作用是检查代码是否存在任何违反访问的情况。
12、Write Once Run Anywhere:如上所述,java 应用程序生成一个'.class'文件,它对应于我们的应用程序(程序),但包含二进制格式的代码。由于字节码不依赖于任何机器架构,因此它提供了与架构无关的易用性。这是全球范围内有进取心的 IT 行业使用 java 的主要原因。
13、编译和解释的力量:大多数语言的设计目的要么是编译语言,要么是解释语言。但是随着 Java 编译器将源代码编译为字节码,而 JVM 执行此字节码以机器依赖于操作系统的可执行代码,java 集成了强大的功能。
例子
// 演示 Java 程序 // 从包中导入类 import java.io.*; // Main class public class GFG { // Main 方法 public static void main(String[] args) { // 输出语句 System.out.println("Welcome to Java"); } }
输出
Welcome to Java
解释:
1、注释:注释用于解释代码,在 Java 或 C 或 C++ 中以类似的方式使用。编译器忽略注释条目并且不执行它们。注释可以是单行或多行。
单行注释: 语法:
// 单行注释
多行注释: 语法:
/* 多行注释*/
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 中也用于在控制台上显示文本。它在控制台上打印文本,光标移动到控制台下一行的开头。下一次打印从下一行开始。
java 中的所有内容,在 Class 中都表示为一个对象,包括 main 函数。