文章目录
一、前言
1.1 Java 是什么
Java 是一种广泛使用的面向对象编程语言,具有卓越的通用性、高效性、跨平台性和安全性,从语法和结构上,Java 具有清晰的语法规则和简洁的代码风格,这使得开发者能够更轻松地编写和理解代码。
1.2 Java 诞生背景
Java 语言诞生于 1991 年,起初起名为 Oak 语言,是 Sun 公司为一些消费性电子产品(如有线电视交换盒、PDA 等)所设计的一个通用环境。其诞生的背景主要包括以下几点:
当时 Sun 公司的一个计算机开发小组,包括 James Gosling(Java之父) 等人,想要开发一款用于控制嵌入在这些设备微处理器的计算机语言。他们最初考虑直接扩展 C++,但后来发现 C++ 无法满足需求,于是便基于 C++ 重新开发了名为 Oak 的语言。
在 Java 出现以前,互联网上的信息内容主要是一些乏味死板的 HTML 文档,人们迫切希望在网页中看到一些交互式的内容,开发人员也希望能创建一类无需考虑软硬件平台就可以执行的应用程序,并且要有极大的安全保障。而传统的编程语言对此显得无能为力。
1994 年起,Sun 公司的工程师们开始将 Oak 技术应用于 Web 上,并开发出了 HotJava 的第一个版本。1995 年,Sun 公司正式以 Java 这个名字推出该语言后,受到了广大 Web 开发人员的欢迎,因为它正好满足了用户和开发人员对于交互式网页内容和跨平台应用程序的需求。
Oak 改名为 Java 的原因是,商标搜索显示 Oak 已被一家显卡制造商注册,所以团队需要寻找一个新名字,于是 Gosling 就开始到处找灵感,结果看见了同事桌上有一瓶咖啡,包装上写着 Java,自此以后,Oak 就改名为 Java 了。
1.3 Java 三个方向
-
Java SE(Java Platform Standard Edition,Java 平台标准版)这是 Java 平台的核心,提供了 Java 语言的基础类库和核心功能,是学习 Java 语言的基础,包含了 Java 语言的基本语法、面向对象编程的概念、基本的输入输出操作等。
-
Java EE(Java Platform Enterprise Edition,Java 平台企业版):基于 Java SE,专门为企业级应用开发而设计的。
-
Java ME(Java Platform Micro Edition,Java 平台微型版):针对于资源受限的设备,如移动电话、PDA(个人数字助理)等。具有较小的运行时环境和精简的类库,以适应设备的内存和处理能力限制。
例如,一个简单的计算器应用,如果是在桌面运行,可能会基于 Java SE 开发;一个大型的在线购物网站,则很可能基于 Java EE 来构建;而一款手机上的小游戏,可能会使用 Java ME 进行开发。
二、特性
2.1 面向对象
强调将现实世界中的事物抽象为对象,通过对象之间的交互来实现程序的功能,支持封装、继承和多态,提高了代码的可复用性、可维护性和可扩展性。
2.2 跨平台性
Java 程序编译后生成的字节码可以在不同的操作系统和硬件平台上运行,只要有相应的 Java 运行环境(JRE),这使得开发者能够一次编写,到处运行,大大降低了开发和维护成本。
2.3 垃圾回收机制
Java 虚拟机会自动管理内存的分配和回收,开发者无需手动释放不再使用的内存,这降低了内存泄漏和指针错误的风险,提高了程序的稳定性。
2.4 安全性
具有严格的访问控制机制,防止非法的内存访问和代码篡改,支持数字签名和加密技术,保障了代码和数据的安全性。
2.5 健壮性
在编译和运行时进行严格的类型检查,减少错误的发生,处理异常的机制使得程序在遇到错误时能够更优雅地恢复或退出。
2.6 多线程
支持多线程编程,能够同时执行多个任务,提高程序的并发性和效率,方便开发者实现并发操作,如同时处理多个网络连接或后台任务。
2.7 丰富的类库
Java 拥有庞大且丰富的标准类库,涵盖了各种常见的功能,如网络编程、文件操作、数据库连接等,开发者可以直接使用这些类库,节省了大量的开发时间。
2.8 混合型语言
Java 是混合型的编程语言,也称为解释型与编译型结合的语言,它首先将源代码 编译 成字节码,在运行时,Java 虚拟机(JVM)会 解释 执行字节码。
三、应用领域
3.1 Web 开发
许多大型的 Web 应用程序,如电商网站、社交媒体平台等,都是基于 Java 技术构建的。例如,淘宝的部分后端服务就使用了 Java 来处理高并发的用户请求。
3.2 企业级应用
银行、保险等行业的核心业务系统通常采用 Java 开发。比如各大银行的在线交易系统,依靠 Java 的稳定性和安全性保障业务的正常运行。
3.3 移动开发
Android 应用的开发主要依赖 Java 语言。像微信、支付宝等热门的 Android 应用,其底层代码有很大一部分是用 Java 编写的。
3.4 大数据处理
Hadoop 等大数据处理框架中的许多组件是用 Java 实现的。Java 在处理大规模数据时的性能和稳定性表现出色。
3.5 游戏开发
一些桌面游戏和手机游戏的服务器端逻辑使用 Java 编写。例如《我的世界》的服务器端就可以用 Java 来实现。
3.6 科学计算和金融领域
在金融交易系统和科学计算模型中,Java 也发挥着重要作用。比如高频交易系统和气象预测模型。
四、JDK、JRE和JVM
4.1 JDK
开发工具包(Java Development Kit),包含了 Java 的开发工具和 JRE(运行时环境)。所以安装了JDK,就无需再单独安装 JRE 了。其中的开发工具包括:编译工具(javac.exe),运行工具(java.exe),打包工具(jar.exe)等。
4.2 JRE
运行时环境(Java Runtime Environment),包含了 JVM(Java 虚拟机)和核心类库。JRE 是 Java 程序运行的基础环境,为 Java 应用程序的部署和使用提供了必要的支持。
4.3 JVM
Java 虚拟机(Java Virtual Machine),JVM 是实现 Java 语言 “一次编写,到处运行” 的关键。它可以在不同的操作系统上运行,将 Java 字节码转换为特定操作系统能够理解的机器码。例如,同一个 Java 程序可以在 Windows、Linux 和 macOS 等不同操作系统上运行,无需为每个平台单独编写代码,只要提供对应的系统的 JVM。
4.4 包含关系
五、长期支持版本(LTS)
截至 2024 年 8 月,Java 的长期支持版本包括 Java 8、Java 11、 Java 17 和 Java 21。
在选择使用哪个版本时,需要考虑项目需求、稳定性要求以及对新特性的需求等因素。如果项目对稳定性要求较高,且不需要使用最新版本的特性,那么 Java 8 或 Java 11 可能是合适的选择;
如果希望利用最新的语言特性和性能优化,并且可以接受更频繁的升级,那么可以考虑使用 Java 17 或 Java 21。同时,还需考虑相关框架和库对 Java 版本的要求。