1、Java 简介
Java 是一种广泛使用的编程语言,以其 面向对象、平台无关性 和 安全性 等特点而闻名。它被广泛应用于企业级应用、Android 应用开发、大数据处理等领域。
它归甲骨文所有,超过30亿台设备运行Java。
它用于:
- 移动应用程序(特别是Android应用程序)
- 桌面应用
- 网络应用
- Web服务器和应用程序服务器
- 游戏
- 数据库连接
- 其它还有很多
2、Java编程语言的优点
1)跨平台性
Java 程序可以通过 Java 虚拟机(JVM)在任何平台上运行,这使得 Java 程序具有良好的可移植性。Java 的“编译一次,处处运行”理念指的是,Java 源代码首先被编译成字节码(.class 文件),然后通过 JVM 在不同操作系统上执行。Java可在不同平台(Windows,Mac,Linux,Raspberry Pi等)上运行
2)面向对象
Java 是一种面向对象的编程语言,所有的代码都需要在类(class)中实现。面向对象编程的基本原则包括封装、继承和多态。
3)内存管理
Java 提供自动垃圾回收机制(GC),自动管理内存的分配和回收,减少了开发者手动管理内存的负担。
4)安全性
Java 在设计上非常注重安全性。JVM 提供了安全管理器(Security Manager),可以控制访问权限。同时,Java 的字节码也经过验证,确保不会执行恶意代码。
5)多线程支持
Java 原生支持多线程编程,可以通过 Thread 类或者 Runnable 接口来创建和管理线程。这使得 Java 能够高效地处理并发任务。
6)丰富的标准库
Java 提供了丰富的类库,包括数据结构、输入输出(I/O)、网络、图形用户界面(GUI)等多种功能,极大地简化了开发工作。它拥有巨大的社区支持(数以千万计的开发人员)。
7)平台无关性
Java 程序通过字节码在 JVM 上运行,JVM 的存在使得 Java 程序可以在不同的硬件和操作系统上运行,而无需修改代码。
3、Java 的主要组成
1)Java 编译器(javac)
Java 编译器将 Java 源代码(.java 文件)转换为字节码(.class 文件)。字节码是与平台无关的中间代码,能够在任何支持 Java 的平台上执行。编译器会检查源代码中的语法错误、类型不匹配等问题,并生成对应的字节码文件。
2)Java 虚拟机(JVM)
Java 虚拟机(JVM)是 Java 运行环境的核心部分,它负责执行 Java 字节码。JVM 是平台相关的,它根据操作系统和硬件环境将字节码转换成机器码并执行。JVM 通过解释和即时编译(JIT)将 Java 字节码转换为本地机器码。JVM 管理堆内存(用于动态分配对象)、栈内存(用于方法调用和局部变量)以及其他内存区域。它还负责垃圾回收(GC)。JVM 提供一个安全层,通过字节码验证器防止恶意代码的执行。
3)Java 类库(JDK)
Java 开发工具包(JDK)包含了开发 Java 应用所需的各种工具和类库。JDK 提供了编译器、JVM 和丰富的标准库,用于构建、调试和运行 Java 程序。Java 标准库提供大量的类库,涵盖数据结构、文件 I/O、网络通信、数据库连接等功能。JDK 提供了包括 javac 编译器、java 运行工具、javadoc 文档生成工具等一系列开发工具。
4)Java 应用程序接口(API)
Java 提供了一个庞大的类库集合,称为 Java API,它为开发者提供了各种功能,包括基础数据结构、图形用户界面、网络通信、数据库连接等。核心 API,如 java.util(集合框架)、java.io(输入输出)、java.lang(基础类)等。高级 API,如 java.sql(数据库操作)、javax.swing(图形界面)、java.nio(NIO 高效 I/O)等。
4、Java 版本
Java 的版本更新不断,每个新版本都增加了新特性并提升了性能。常见的版本包括:
Java 8 引入了 Lambda 表达式、Streams API、接口的默认方法等,极大地简化了函数式编程的应用。
Java 9 引入了模块系统(JPMS)。
Java 10-16 各版本主要包含性能改进、API 增强和一些新特性的引入。
Java 17 作为长期支持版本(LTS),包含了大量的性能改进和新特性。
Java 的版本是定期发布的,并且每个版本的支持期都有一定的生命周期。
5、Java发展历史
Java 是由 Sun Microsystems 的 James Gosling、Mike Sheridan 和 Patrick Naughton 等人于 1991 年开始开发的。最初,Java 被设计为一种用于智能设备(如电视机顶盒、嵌入式设备等)的编程语言,但随着其特性和潜力的逐渐显现,Java 的应用范围逐渐扩展到桌面、Web 和企业级应用开发中。Java 的发展历程可以分为以下几个关键阶段:
1)早期阶段(1991 - 1995)
1991年:Java 的前身,名为 Oak,开始由 Sun Microsystems 开发。Oak 的设计初衷是为嵌入式设备和智能家居产品提供一个跨平台的编程语言。Oak 这个名字后来由于商标原因被更改为 Java。
1995年:Java 的正式发布。这一年,Java 从 Sun Microsystems 向公众发布,并迅速在 Web 开发中得到应用。Java 被宣传为“编写一次,处处运行”(Write Once, Run Anywhere, WORA),因为它能够通过 Java 虚拟机(JVM)在不同的操作系统和硬件平台上运行。
Java 1.0 发布:Java 1.0 是 Java 的第一个正式版本,它为程序员提供了基本的类库(API),如 AWT(Abstract Window Toolkit)和 Java 虚拟机(JVM)。此版本并不完美,但它奠定了 Java 成为跨平台应用开发语言的基础。
2)成熟期(1996 - 2004)
Java 1.1(1997年):引入了许多重要特性,如内嵌的 JavaBeans 和 RMI(远程方法调用)。它增强了对企业级应用的支持,并进一步优化了 AWT。
Java 2(J2SE,1998年):Java 2 是 Java 语言的一次重大更新,标志着 Java 成为一种面向企业开发的主流编程语言。J2SE 包括了多个重要的组件,如:
Swing GUI 库:一个比 AWT 更强大的图形用户界面库。
Java 2D 和 3D API:用于图形和图像处理的 API。
JDBC(Java 数据库连接):为 Java 应用提供数据库访问功能。
Java 2 之后,Java 被划分为三个不同的版本:
J2SE(标准版)
J2EE(企业版,针对大型企业应用)
J2ME(微型版,针对嵌入式和移动设备)
Java 5(2004年):Java 5 是一次重大的语言更新,也叫 Java 1.5,引入了大量的新特性,包括:
泛型(Generics):提高类型安全性和代码复用。
元数据注解(Annotations):增加了新的注释机制,允许在代码中嵌入额外信息。
枚举类型(Enums):使常量值的表示更加清晰。
增强的 for 循环(foreach):使遍历集合变得更加简洁。
可变参数(Varargs):简化了方法参数的处理。
3)现代化阶段(2006 - 2010)
Java 6(2006年):主要是针对性能的改进和优化。Java 6 引入了许多性能优化,如改进的垃圾回收机制、更快的 Java Compiler(javac)和更好的监控工具。Java 6 还增强了对 Web 服务和脚本的支持。
Java 7(2011年):Java 7 引入了许多重要的新特性:
语言增强:比如 try-with-resources(简化了资源管理)。
NIO 2.0:改进了 Java 的 I/O 功能,使得文件操作更加高效。
Switch 支持字符串:增强了 switch 语句的功能,可以对字符串类型进行匹配。
Java 8(2014年):Java 8 是 Java 历史上最重要的版本之一,带来了众多革命性特性:
Lambda 表达式:支持函数式编程,允许使用更简洁的方式处理集合和流。
Streams API:支持以声明性方式操作集合,能够进行高效的并行计算。
默认方法(Default Methods):接口中可以包含默认实现的方法。
新的日期时间 API:替代了旧的 java.util.Date 和 Calendar 类,提供更强大的日期时间处理能力。
4)模块化与多元化(2011 - 至今)
Java 9(2017年):Java 9 引入了一个重要的新特性——模块系统(Project Jigsaw)。模块系统可以将代码分为模块,使得依赖关系更加清晰,并且可以帮助提高应用程序的可维护性和安全性。
Java 10(2018年):引入了 局部变量类型推断(var),使得代码更加简洁。Java 10 还加强了 JVM 性能,并对垃圾回收做出了优化。
Java 11(2018年):Java 11 是一个长期支持版本(LTS)。它提供了对 HTTP/2 协议的支持,删除了一些不再使用的类库,并优化了性能。
Java 12 - Java 16(2019 - 2021年):这些版本逐步引入了多个功能改进,例如 Switch 表达式(Java 12)、垃圾回收优化(ZGC 和 Shenandoah) 和 文本块(Java 13) 等。
Java 17(2021年):Java 17 是另一个长期支持版本(LTS)。它包含了模式匹配、增强的记录类型、对新的 JVM 特性(如 ZGC)的支持等。
Java 18(2022年)及之后的版本:Java 18 开始实施每六个月发布一次新版本的计划,每个版本包含增强功能、性能改进以及新特性,类似于 Java 19 和 Java 20。这些版本强化了语言特性、性能和平台优化,并提出了关于模式匹配、虚拟线程等未来发展方向。
5)Oracle 收购(2009年)
2009年:Sun Microsystems 被 Oracle 收购,Java 也成为 Oracle 的一部分。收购后,Oracle 继续负责 Java 的开发和管理,发布了多个版本的新特性,并且通过 JDK、JVM 和 Java 社区的工作推动 Java 的发展。
Java 语言自诞生以来,经历了多个阶段的演变,从最初的面向嵌入式设备,到如今广泛应用于 Web 开发、企业应用、移动开发、大数据处理等多个领域。Java 在语言特性、性能、工具链、平台无关性等方面的不断创新,使得它成为了全球开发者广泛使用的编程语言之一。