易百教程

Java简介

JAVA 由 Sun Microsystems Inc 的 James Gosling 于 1995 年开发,后来被 Oracle Corporation 收购。JAVA是一种简单的编程语言。 Java 使编写、编译和调试编程变得容易。它有助于创建可重用的代码和模块化程序。
Java是一种基于类、面向对象的编程语言,旨在尽可能减少实现依赖项。一种为开发人员编写的通用编程语言,只要编写一次就可以在任何地方运行,编译后的 Java 代码可以在所有支持 Java 的平台上运行。 Java 应用程序被编译成可以在任何 Java 虚拟机上运行的字节码。 Java的语法类似于 c/c++。

1. 历史

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 用于移动设备、互联网编程、游戏、电子商务等。

2. 为什么命名为JAVA?

在OAK这个名字之后,团队决定给它起一个新名字,建议的词是Silk、Jolt、revolution、DNA、dynamic等。这些名字都容易拼写,说起来很有趣,但他们都想要这个名字 体现科技的本质。 根据 James Gosling 的说法,Java 与 Silk 一起名列前茅,由于 java 是一个独特的名称,所以大多数人更喜欢它。
Java 是印度尼西亚的一个岛屿的名称,第一批咖啡(命名为 java 咖啡)就是在这里生产的。 这个名字是 James Gosling 在办公室附近喝咖啡时选择的。 请注意,Java 只是一个名称,不是首字母缩略词。

3. Java术语

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

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

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

Java虚拟机的功能是执行编译器产生的字节码。每个操作系统都有不同的 JVM,但它们在执行字节码后产生的输出在所有操作系统中都是相同的。这就是为什么 Java 被称为平台无关语言的原因。
3.2. 开发过程中的字节码:如前所述,JDK的Javac编译器将Java源代码编译成字节码,以便JVM可以执行。它被编译器保存为 .class 文件。要查看字节码,可以使用 javap 之类的反汇编程序。
3.3. Java Development Kit(JDK):当学习字节码和JVM时,就会使用JDK这个术语。顾名思义,JDK是一个完整的 Java 开发工具包,包括编译器、Java 运行时环境(JRE)、Java 调试器、Java文档等。为了在 Java 中执行程序,我们需要在计算机上编写、编译和运行java程序。
3.4. Java运行时环境(JRE):JDK包括JRE。在计算机上安装 JRE 允许 java 程序运行,但是无法编译它。 JRE包括浏览器、JVM、小程序支持和插件。为了运行 java 程序,计算机需要JRE。
3.5. 垃圾收集器:在Java中,程序员不能删除对象。为了删除或回收内存,JVM有一个名为 Garbage Collector 的程序。 垃圾收集器可以重新收集未引用的对象。 因此,Java 通过处理内存管理使程序员的工作变得更轻松。但是,程序员应该注意他们的代码是否使用了已经使用了很长时间的对象。 因为垃圾不能恢复被引用对象的内存。
3.6. ClassPathclasspath是java运行时和java编译器寻找.class文件加载的文件路径。默认情况下,JDK 提供了许多库。如果要包含外部库,则应将它们添加到类路径中。

4. Java主要特性

4.1. 平台独立:编译器将源代码转换为字节码,然后JVM执行编译器生成的字节码。这个字节码可以在任何平台上运行,无论是 Windows、Linux、macOS,如果在 Windows 上编译程序,那么可以在 Linux 上运行它,反之亦然。 每个操作系统都有不同的 JVM,但所有操作系统在执行字节码后产生的输出是相同的。 这就是为什么说java为平台无关语言的原因。
4.2. 面向对象编程语言 :用对象的集合来组织程序是面向对象编程的一种方式,每个对象代表一个类的实例。面向对象编程的四个主要概念是:

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

4.3. 简单:Java 是一种简单的语言,因为它没有指针、运算符重载、多重继承、显式内存分配等复杂功能。
4.4. 健壮:Java 语言是健壮可靠的。它的开发方式是尽可能早地检查错误,这就是为什么 java 编译器能够检测到其他编程语言不容易检测到的错误。 java 使其健壮的主要特性是垃圾收集、异常处理和内存分配。
4.5. 安全: 在java中没有指针,所以不能访问越界数组,即如果这样做,那么将会抛出 ArrayIndexOutOfBound Exception。所以在 Java 中无法利用堆栈损坏或缓冲区溢出等安全漏洞。
4.6. 分布式: 可以使用java编程语言创建分布式应用程序。远程方法调用和企业 Java Bean 用于在 Java 中创建分布式应用程序。Java 程序可以很容易地分布在一个或多个通过 Internet 连接相互连接的系统上。
4.7. 多线程: Java支持多线程。它是一种 Java 功能,允许同时执行程序的两个或多个部分,以最大限度地利用 CPU。
4.8. 可移植性: 众所周知,在一台机器上编写的java代码可以在另一台机器上运行。java的平台无关特性,平台无关字节码可以被带到任何平台上执行,这使得java具有可移植性。
4.9. 高性能: Java 体系结构的定义方式使其减少了运行时的开销,并且有时 java 使用即时 (JIT) 编译器,编译器按需编译代码基础知识,只编译那些方法 称为使应用程序执行得更快。
4.10. 动态灵活性: Java 完全面向对象使我们可以灵活地向现有类添加类、新方法,甚至通过子类创建新类。Java甚至支持用其他语言编写的函数,例如:C、C++,它们被称为本地方法。
4.11. 沙盒执行:Java 程序在单独的空间中运行,允许用户在字节码验证器的帮助下执行他们的应用程序而不会影响底层系统。字节码验证器还提供额外的安全性,因为它的作用是检查代码是否存在任何违反访问的情况。
4.12. 一次编写,随处运行:如上所述,java应用程序生成一个.class文件,Java对应于应用程序(程序),但包含二进制格式的代码。 由于字节码不依赖于任何机器架构,因此它提供了与架构无关的易用性。这是全球范围内有进取心的 IT 行业使用 java 的主要原因。
4.13. 编译和解释的力量: 大多数语言的设计目的要么是编译语言,要么是解释语言。但是随着 Java 编译器将源代码编译为字节码,而 JVM 执行此字节码以机器依赖于操作系统的可执行代码,java 集成了强大的功能。

示例:

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

// Main class
public class Yiibai {

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

        // Print statement
        System.out.println("Welcome to Yiibai Yiibai.");
    }
}

运行结果如下:

Welcome to Yiibai Yiibai.

解释:

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

单行注释语法:

// Single line comment

多行注释语法:

/* Multi line comments*/

或者

/**
* Multi 
* line 
* comments
*/

2. import java.io.*表示io包的所有类都可以导入。 Java io 包提供了一组输入和输出流,用于将数据读取和写入文件或其他输入或输出源。
3. 类:类包含程序中要使用的数据和方法,方法定义了类的行为。 Yiibai 类在 JAVA 中只有一个方法 main
4. static void main() static关键字表示这个方法不需要实例化类就直接访问。
5. void: 关键字告诉这个方法不会返回任何东西,main()方法是应用程序的入口点。
6. System.in: 这是标准输入流,用于从键盘或任何其他标准输入设备读取字符。
7. System.out: 这是标准输出流,用于在计算机屏幕等输出设备上生成程序结果。
8. println(): 这个方法在Java中也用于在控制台上显示文本。它在控制台上打印文本,光标移动到控制台下一行的开头。下一次打印从下一行开始。

java中的所有内容,在 Class 中都表示为一个对象,包括 main() 函数。