一、介绍
1、起源
Java 是由 Sun Microsystems 于 1995 年推出的一种面向对象的编程语言和计算平台。由詹姆斯·高斯林(James Gosling,后来被称为Java之父)和他的同事们共同研发。后来,Sun 公司被 Oracle(甲骨文)公司收购,Java 也随之成为 Oracle 公司的产品。
Java最开始叫 Oak(橡树)语言,由Sun公司(后来被Oracle收购)成立的技术小组开发,由于 oak 在当时已被注册,所以改名为 Java。这个名字的由来也是一个很有趣的小故事,说是有一天团队的几个主要成员在一起喝咖啡,正品尝一种来自爪哇岛(Java)的咖啡。这个名字的灵感就来源于这个来自爪哇岛的咖啡。Java的图标也是一杯咖啡,同样也是因为这个。
Sun公司在1995 年正式发布了JDK1.0。詹姆斯·高斯林(James Gosling)在1994年参加硅谷大会,展示了Java的功能,震惊世界。
2、简要介绍
Java分为三个体系:
- JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
- JavaEE(J2EE) (Java 2 Platform,Enterprise Edition,java平台企业版)
- JavaME(J2ME) (Java 2 Platform Micro Edition,java平台微型版)。
后来里的J2SE、J2EE和J2ME中的2被去掉,变成了现在的JavaSE、JavaEE和JavaME。
二、特点
简单性:
- 语法类似于 C 和 C++,便于学习和上手。
- 丢弃了 C++ 中复杂且不常用的特性(如操作符重载、多继承等)。
- 不使用指针,而使用引用,简化内存管理。以及提供了自动分配和回收内存空间。
面向对象(OOP Object-Oriented):
- 提供类、接口和继承等支持,只支持类之间的单继承,但支持接口的多继承。
- 全面支持动态绑定,使得程序更加灵活和可扩展。
分布式:
- 支持网络应用开发,提供了丰富的网络编程接口,如 URL、Socket 等。
- 具备 RMI(Remote Method Invocation)机制,支持分布式应用开发。
健壮性:
- 强类型机制、异常处理和自动垃圾回收等特性保证了程序的健壮性。
- 安全检查机制进一步增强了代码的可靠性。
安全性:
- 提供了多层次的安全机制,防止恶意代码的攻击。
- 通过 ClassLoader 和 SecurityManager 实现动态的安全防护。
体系结构中立或跨平台性:
- Java 程序(后缀为 .java 的文件)在 Java 平台上被编译为体系结构中立的字节码格式(后缀为 .class 的文件),然后可以在实现这个 Java 平台的任何系统中运行。也就是我们常说的“一次编译,到处运行”。
- 那这种特性是怎么实现的呢,实际上就是依靠Java虚拟机(JVM,Java Virtual Machine)。它的主要功能是运行 Java 字节码。JVM 提供了一个抽象计算机模型,使得 Java 程序能够在各种不同的硬件和操作系统上运行,从而实现了“一次编译,到处运行”的跨平台特性。每个平台(如 Windows、Linux、macOS 等)都有不同的 JVM 实现。每个平台的 JVM 实现都是根据特定平台的需求进行优化的,但它们都能够运行相同的 Java 字节码。所以一个.class文件可以在不同平台下运行。
可移植性:
- Java 严格规定了基本数据类型的长度,确保代码在不同平台上具有一致的表现。
- Java 编译器和运行环境具有很强的可移植性。Java 系统本身也具有很强的可移植性,Java 编译器是用 Java 实现的,Java 的运行环境是用 ANSI C 实现的。
解释型:
- Java是解释型语言。
- Java这个解释型语言编译后得到的字节码,不能直接在机器上运行,需要通过解释器来运行。而对于编译型语言,编译后得到的是机器码,可以直接在机器上运行。
高性能:
- 虽然是解释型语言,但通过 JIT(Just-In-Time)编译器技术,Java 的运行速度接近于原生编译语言如 C++。
多线程:
- Java 内置多线程支持,可以方便地编写并发程序。
- 提供了线程同步机制(如 synchronized 关键字)来避免资源竞争。
动态性:
- 类可以在运行时动态加载和链接,适应动态变化的环境。
- 支持运行时的类型检查和反射机制。