第一章:Java 相关概述
1.1 Java SE 课程体系介绍
- Java SE 知识图谱,如下所示:

1.2 软件和硬件的介绍
1.2.1 硬件
硬件
是计算机系统中可触摸的物理部件
,指的是所有实物组件。它包括了计算机的各个硬件设备,如:主板、中央处理器(CPU)、内存、硬盘、显示器、键盘、鼠标等。

硬件
被认为是“硬”
,是因为它在变化或修改方面较“硬”
或严格
。硬件
的功能是执行计算机的基础操作和提供物理接口
,它们通过电子信号
和电流
来实现计算、存储和输入输出的任务。
1.2.2 软件
软件是
指运行在计算机硬件上的程序
和应用
,它是计算机的指令集,不能直接触摸或看到,如:操作系统(Windows、MacOS、Linux)、应用程序(Word、Photoshop)以及各种工具和服务。

软件
被认为是“软”
的,是因为它在变化或修改方面容易更新
或更改
。软件
的功能是提供对硬件的控制和利用
,使用户能够通过输入命令和操作界面与计算机交互,实现特定的任务或解决问题。
1.2.3 硬件和软件的关系
硬件和软件是相辅相成的,谁也离不开谁
。硬件可以认为是“计算机的身体”,而软件可以认为是“计算机的大脑”。- 硬件通常由软件指示以执行命令或指令。硬件和软件的组合形成可用的计算机系统,尽管存在仅具有硬件组件的其他系统。
1.3 计算机语言
1.3.1 计算机编程语言
人类语言
是人和人之间用于沟通的一种方式,例如:中国人和中国人之间使用普通话沟通,而中国人和美国人交流,则可以使用英语。
提醒
- ① 中文有自己的
固定格式
和固定词汇
(即:语法规则
),英文也是自己的固定格式
和固定词汇
(即:语法规则
);同样的道理,法语、韩国等各种人类语言
都有自己的固定格式
和固定词汇
(即:语法规则
)。 - ② 在和别的国家的人进行交流的时候,我们必须正确的表达,对方才会理解我们;否则,如果不熟悉对方国家的语言的语法规则,乱用语法规则,可能会贻笑大方,如:中文中的
望其项背
原指看见对方的背影,形容差距不大,能赶上;但是,很多人却认为这是形容遥不可及或难以企及的目标。 - ③ 就算和本国家的人进行交流的时候,我们也必须正确的表达,对方才会理解我们;否则,如果乱用语法规则,可能也会让对方感觉奇怪,听不懂我们的意思,如:
借我 5000 RMB 买 iphone
或者5000 RMB 我买 iphone 借
。
计算机编程语言
是人和计算机交流的方式。人们可以使用编程语言
对计算机下达命令(指令)
,让计算机完成人们需要的功能。
提醒
- ① 计算机语言也有自己
固定格式
和固定词汇
(即:语法规则
),我们必须学习其语法规则,才能控制计算机,让计算机完成我们所需要的功能。 - ② 计算机语言有很多种,如:C、C++、Java、Go、JavaScript、Python、Scala 等。
1.3.2 为什么要学习计算机语言?
- 编程语言到底是什么?编程语言就是由文字和符号组成的,如:
c
#include <stdio.h> // 这是编译预处理指令
int main() { // 定义主函数
printf("你好,世界!!!"); // 输出所指定的一行信息
return 0; // 函数执行完毕时返回函数值0
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- 编程语言就是用于控制计算机,让其完成我们需要的功能。而我们学习编程语言,其实就是学习这些文字和符号编写的规则。
- 因为
CPU
只能识别二进制的指令,而我们编写
的程序叫做源代码
,是人类能看懂;但是,计算机却不能识别。那么,我们就需要让计算机能识别我们编写的源程序,就需要将我们编写的源代码交给编译器程序,其会帮助我们将所编写的源代码转换为计算机能够识别的二进制指令。
提醒
编译器就是运行在操作系统之上的程序,其作用就是用来将程序员编写的源代码转换为计算机能够识别的二进制指令。
- 如果我们用
Java
语言编写了程序(源代码),那么编写的程序也是不能直接运行的,需要通过Java
语言的编译器将Java
程序编译为计算机能够识别的二进制指令。 - 如果我们用
Python
语言编写了程序(源代码),那么编写的程序也是不能直接运行的,需要通过Python
语言的编译器将Python
程序编译为计算机能够识别的二进制指令。 - ……
提醒
总结:无论我们学习任何一门编程语言,想要将程序运行起来,都必须做如下的两件事情:
- ① 学习该语言的文字和符号编写的规则,即:
语法规则
。 - ② 需要在操作系统上安装对应编程语言的
编译器
程序,将源程序编译为计算机能够识别的二进制指令。
1.3.3 计算机语言的发展史
1.3.3.1 机器语言(相当于人类的石器时代)
- 1946 年 2 月 14 日,世界上第一台计算机
ENIAC
诞生,使用的是最原始的穿透卡片
。

- 这种卡片使用的是用
二进制代码
表示的语言,和人类语言差别极大,这种语言就称为机器语言
,如:
txt
0000,0000,000000010000 代表 LOAD A, 16
0000,0001,000000000001 代表 LOAD B, 1
0001,0001,000000010000 代表 STORE B, 16
1
2
3
2
3
- 这种语言本质上是计算机能识别的
唯一语言
,人类很难理解;换言之,当时的程序员 99.9% 都是异类!!!
警告
- ① 不同类型(CPU 架构,如:x86_64、arm 等)的处理器有不同的机器语言指令集,指令集架构(ISA)决定了机器语言的具体形式。
- ② 换言之,机器语言与特定硬件架构紧密相关,机器语言程序几乎没有可移植性。
1.3.3.2 汇编语言(相当于人类的青铜&铁器时代)
汇编语言
使用助记符
(如:MOV、ADD、SUB)代替二进制操作码,使程序更易于人类编写和理解;因此,汇编语言
也被称为符号语言
。

- 汇编语言的
优点
是能编写高效率
的程序;但是,缺点
和机器语言没什么不同,汇编语言同样依赖于具体的计算机架构(面向机器)
,程序不具备跨平台的可移植性。
警告
- ① 汇编语言,目前仍然应用于工业电子编程领域、软件的加密解密、计算机病毒分析等。
- ② 汇编语言是编程语言的拓荒年代,它非常底层,直接和计算机硬件打交道,开发效率低,学习成本高。
1.3.3.3 高级语言(相当于人类的信息时代)
高级语言
是一种接近于人们使用习惯
的程序设计语言。它允许程序员使用接近日常英语的指令来编写程序
,程序中的符号和算式也和日常使用的数学公式
差不多,接近于自然语言和数学语言,容易被人们掌握。

- 高级语言
独立于计算机硬件
,有一定的通用性;计算机不能直接识别和执行用高级语言编写的程序,需要使用编译器
或解释器
转换为机器语言,才能被计算机识别和执行。

提醒
1.3.3.4 总结
- 编写语言的对比,如下所示:
类别 | 特征 | 优点 | 缺点 | 示例 |
---|---|---|---|---|
机器语言 | 直接由计算机执行的二进制代码 | 执行速度快 | 编写困难,可读性差,与具体硬件强绑定 | 二进制代码 |
汇编语言 | 用助记符代替二进制代码的低级语言 | 相对机器语言更易编写和理解,允许直接控制硬件资源 | 依然需要了解硬件,不够抽象,与具体硬件或平台相关 | MOV,ADD 等助记符 |
高级语言 | 接近人类语言,提供了更高层次的抽象 | 易于编写和维护,可移植性好,支持多种编程范式 | 需要通过编译器或解释器转换为机器语言,可能存在一定的性能损失 | C,Java, Python 等 |
重要
- ① 使用机器语言进行编程,对于程序员来说,简直就是噩梦,尤其当功能比较多,程序比较大的时候,不但编写麻烦,需要频繁查询指令手册,而且排查错误非常麻烦,要直接面对一堆二进制数据,想想都令人崩溃(上古程序员,可能真的不是“人”,而是“异类”)。此外,使用二进制指令编程,步骤非常繁琐,要考虑各种边界情况和底层问题,开发效率十分低下。
- ② 这就倒逼程序员开发出了编程语言,提供自己的生产力,如:汇编语言、C 语言、C++ 语言、Java 语言、Go 语言等等,都是在逐步
提高开发效率
。至此,编程终于不再是只有极客才能做的事情,不怎么了解计算机的初学者在经过一定时间的训练后也可以编写出有模有样的程序。 - ③ 在实际开发中,随着计算机科学的发展,现代化的高级编程语言,如:C++ 语言、Java 语言、Go 语言等,因其强大的表达能力、良好的可移植性和易用性,成为了日常软件开发的主流选择。
1.4 初识 Java 语言
1.4.1 Java 生态圈的介绍
Java 生态圈
是指围绕 Java 编程语言及其相关技术所形成的一个广泛的、充满活力的软件开发环境和社区。它包含了许多工具、库、框架、平台以及开源项目,旨在提升开发者的工作效率,支持构建跨平台应用,推动技术创新和应用的普及。Java 生态圈
的主要组成部分,如下所示:
类别 | 技术 / 工具 | 简要说明 |
---|---|---|
① Java平台 | JDK | Java开发工具包,包含编译器、类库、调试器等开发工具。 |
② 框架与库 | Spring Framework | 企业级开发核心框架,支持依赖注入、事务、Web开发等。 |
^^ | Hibernate | ORM 框架,简化数据库操作。 |
^^ | Apache Commons | 通用工具类库,涵盖字符串、集合、IO 等操作。 |
^^ | ... | ... |
③ 开发工具 | IntelliJ IDEA / Eclipse | 主流 Java IDE,支持智能补全、调试、插件。 |
^^ | Maven / Gradle | 构建与依赖管理工具,用于自动化构建流程。 |
④ 社区与开源项目 | Apache 项目(Tomcat、Kafka 等) | 广泛的开源项目支持,适用于Web服务器、消息中间件等。 |
^^ | JUG / GitHub | Java 用户社区与开源贡献平台。 |
^^ | ... | ... |
⑤ 企业级技术 | Servlet / JSP | 构建 Web 应用的基础技术。 |
^^ | Java EE (Jakarta EE) | 企业级开发标准,支持分布式系统、事务、安全等。 |
^^ | ... | ... |
⑥大数据与云计算 | Hadoop / Spark | Java编写的大数据平台,支持分布式存储与计算。 |
^^ | Spring Cloud | 微服务开发框架,集成注册中心、配置中心等组件。 |
^^ | Java +云平台(AWS、Azure) | Java 应用可部署于主流云服务,支持容器化与自动扩展。 |
^^ | ... | ... |
⑦ 跨平台特性 | JVM + 多平台支持 | “一次编写,到处运行”,支持 Windows、Linux、MacOS 等系统。 |
Java 生态圈
凭借其强大的平台、框架和工具,吸引了全球范围的大量开发者与企业使用。无论是小型项目还是企业级应用,Java 都能提供灵活的解决方案。- 随着云计算、大数据和人工智能等新兴技术的发展,
Java 生态圈
也在不断进化,迎接更多的技术挑战。
1.4.2 Java 语言的发展史
- Java 语言自 1995 年由 SUN 公司发布以来,已经经历了多次重要的发展与变革,成为全球最受欢迎的编程语言之一。
- 以下是 Java 语言的发展历程:
JDK 版本 | 发布年份 | 主要特性 |
---|---|---|
JDK 1.0 | 1996 年 | 初始版本,支持 applet、AWT、JVM、基本的 Java 语言语法 |
JDK 1.1 | 1997 年 | 内部类、JavaBeans、反射、RMI、JDBC |
JDK 1.2 | 1998 年 | 集合框架、Swing GUI、JIT 编译器、安全模型改进(称为 Java 2) |
JDK 1.3 | 2000 年 | Java Sound API、HotSpot JVM 默认启用、RMI 改进 |
JDK 1.4 | 2002 年 | assert关键字、NIO、正则表达式、Exception chaining、XML 支持 |
JDK 5.0 | 2004 年 | 泛型、增强for 循环、自动装箱/拆箱、枚举、注解(Annotations) |
JDK 6 | 2006 年 | 脚本语言支持(JSR223)、JDBC4.0、改进的 GUI 和性能 |
JDK 7 | 2011 年 | switch支持字符串、try-with-resources、NIO.2、菱形操作符(<> ) |
JDK 8 | 2014 年 | Lambda 表达式、Stream API、默认方法、日期时间 API(java.time) |
JDK 9 | 2017 年 | 模块化系统(Project Jigsaw)、JShell、改进的JVM 分析工具 |
JDK 10 | 2018 年 3 月 | 局部变量类型推断(var)、G1 GC 改进 |
JDK 11 | 2018 年 9 月 | LTS 版本、HTTP Client API 标准化、移除Java EE 和 CORBA |
JDK 12 | 2019 年 3 月 | switch 表达式(预览)、Shenandoah GC |
JDK 15 | 2020 年 9 月 | 密封类(Sealed Classes,预览)、隐藏类(Hidden Classes) |
JDK 16 | 2021 年 3 月 | 正式引入 Record、移除 CMSGC、JEP 376: ZGC 并发线程栈处理 |
JDK 17 | 2021 年 9 月 | LTS 版本、sealed class 正式版、switch 表达式正式版 |
JDK 18 | 2022 年 3 月 | 简化的 UTF-8编码默认、简单 Web Server(实验性) |
JDK 19 | 2022 年 9 月 | 虚拟线程(预览,ProjectLoom)、结构化并发(预览) |
JDK 20 | 2023 年 3 月 | 虚拟线程和结构化并发的改进、Record模式匹配(预览) |
JDK 21 | 2023 年 9 月 | LTS 版本,虚拟线程正式版、模式匹配正式版、SequencedCollections |
JDK 22 | 2024 年 3 月 | 字段模板、类卸载优化、表达式宏(预览)等 |
... | ... | ... |
1.5 Java 平台的不同版本
1.5.1 概述
- Java 在 JDK 1.2 的时候,就分为
Java SE
(Java Platform, Standard Edition)、Java ME
(Java Platform, Micro Edition)和Java EE
(Java Platform, Enterprise Edition)三个版本,每个版本针对不同的应用场景和开发需求提供不同的功能和支持。
1.5.2 Java SE(Standard Edition)
定义
:Java SE 是 Java 平台的标准版,提供了 Java 编程语言的核心功能以及开发桌面应用、基本的服务器应用和控制台应用所需的工具和类库。它是 Java 平台的基础。
提醒
- ① Java SE 是基础,学习 Java 必须先学习 Java SE。
- ② 对于图形界面,Java 并不是强项,C/C++ 才是这方面的王者!!!
主要特性
:
特性 | 描述 |
---|---|
核心类库 | 包括常用的 API,提供基本的类库支持,如:java.lang 、java.util 等。 |
图形界面 | 包括图形用户界面(GUI)工具包,使得开发桌面应用成为可能,如:Swing 等。 |
JVM 和垃圾回收 | Java SE 提供了 Java 虚拟机(JVM)和内存管理功能,包括垃圾回收(GC)机制,保证 Java 程序的跨平台性。 |
数据库访问 | 通过 JDBC(Java Database Connectivity)API 支持连接、查询和操作关系型数据库。 |
应用场景
:桌面应用、独立应用程序、工具类库、简单的服务器端应用。
1.5.3 Java ME(Micro Edition)
定义
:Java ME 是 Java 平台的微型版,专为嵌入式系统、移动设备、智能卡、物联网设备等资源受限的环境设计。它的目标是让 Java 能够运行在硬件性能较低的设备上。
提醒
点我查看 具体详情
- ① Java ME 虽然专为嵌入式系统、移动设备、智能卡、物联网设备等资源受限的环境设计;但是,在实际工作中,在这些场景中却不怎么使用 Java ME 来进行开发,如:手机使用的是
Andriod
或iOS
。 - ② 嵌入式系统、智能卡、物联网设备等资源受限的环境,使用的是
C
语言来进行开发,因为其性能更好。 - ③ 随着智能手机的普及和操作系统(Android 和 iOS)的发展,Java ME 在手机应用开发中的重要性逐渐下降,于是 Oracle 停止了 Java ME 的更新。
- ④ 虽然 Oracle 已经停止了 Java ME 的主流更新,但是社区依然有一些项目可以作为 Java ME 的替代,如:Eclipse Kura 项目提供了用于管理 IoT 设备的全面工具,包括配置、监控和固件更新。
主要特性
:
特性 | 描述 |
---|---|
轻量级 API | 相比 Java SE,Java ME 提供了精简的 API,去除了一些不必要的功能,适应资源有限的设备。 |
配置和档案 | Java ME 包含了不同的配置(CLDC - Connected Limited Device Configuration)和档案(MIDP - Mobile Information Device Profile),根据不同设备的能力提供不同的功能支持。 |
内存和性能优化 | Java ME 优化了内存使用和处理速度,确保其能够在低内存和低处理能力的设备上运行。 |
应用场景
:嵌入式设备、功能手机、智能卡、物联网设备等。
1.5.4 Java EE(Enterprise Edition)
定义
:Java EE 是 Java 平台的企业版,提供了丰富的 API 和技术支持,用于开发企业级应用程序,尤其是用于开发大规模分布式应用、Web 应用和事务处理系统。主要特性
:
特性 | 描述 |
---|---|
Web 应用开发 | 提供了 Servlet、JSP(JavaServer Pages)和 JSF(JavaServer Faces)等技术,帮助开发动态网站和 Web 应用。 |
企业级服务 | 包括 |
持久化支持 | 通过 JPA(Java Persistence API)和 Hibernate 框架,支持对象关系映射(ORM),简化数据库操作。 |
集成性 | Java EE 提供了一个完整的生态系统,支持与企业中其他系统的集成,如:Web 服务、消息中间件、数据库等。 |
安全性 | Java EE 提供了集成的安全管理机制,如:认证、授权、加密等。 |
应用场景
:大规模企业应用、分布式系统、Web 应用、云计算平台等。
1.5.5 总结
Java SE
是基础版,适合桌面应用和轻量级的应用程序。。Java ME
是轻量版,专门为资源有限的设备和嵌入式系统设计Java EE
是企业级版,专为大规模的企业级应用和分布式系统提供支持。
1.6 什么是软件开发?
1.6.1 概述
软件开发
是指设计、创建、测试、部署和维护软件应用程序的过程。软件开发
涉及多个阶段和技术,目标是根据用户需求开发出功能齐全、性能稳定且符合规范的软件系统。软件开发
不仅仅是编码,还包括需求分析、系统设计、文档编写、测试、调试等工作。
1.6.2 软件开发的主要过程
- 软件开发的主要过程,包括:
需求分析
、系统设计
、编码(开发)
、测试
、部署和发布
以及维护和更新
,如下所示:

- 软件开发的主要过程细节,如下所示:
软件开发的主要过程 | 描述 |
---|---|
需求分析 | 1️⃣ 在这一阶段,开发团队与客户或用户紧密合作,收集和确定软件需求。 2️⃣ 这包括功能需求、性能需求、界面设计需求等,确保开发团队了解软件需要实现的目标。 |
系统设计 | 1️⃣ 设计阶段主要包括软件架构设计和数据库设计,确定软件系统的整体结构和模块分解。 2️⃣ 设计阶段的目的是确保软件能够高效、可扩展且符合需求,还会考虑到系统的用户界面、数据存储、安全性等因素。 |
编码(开发) | 1️⃣ 这是软件开发的核心阶段。 2️⃣ 开发人员根据设计文档使用编程语言(Java、Python、C++ 等)进行实际编程,构建软件的各个模块和功能。 |
测试 | 1️⃣ 在开发完成后,软件需要经过各种类型的测试,如:单元测试、集成测试、系统测试和验收测试。 2️⃣ 测试的目的是发现并修复软件中的 bug 和漏洞,确保软件符合预期的功能和性能要求。 |
部署和发布 | 1️⃣ 软件经过测试并修复缺陷后,就可以部署到生产环境中,向用户发布。 2️⃣ 这个过程可能涉及到配置服务器、数据库以及其他硬件设备。 |
维护和更新 | 1️⃣ 部署后的软件还需要定期维护:解决用户反馈的 bug,修复安全漏洞。 2️⃣ 部署后的软件还需要定期更新:根据新需求进行功能扩展。 |
1.6.3 软件开发的模型
- 不同的开发方法论和模型被用于指导软件开发。
常见的软件开发模型 | 描述 |
---|---|
瀑布模型 | 是传统的线性开发过程,每个阶段按顺序完成,不会跳过或回退。 |
敏捷开发 | 强调快速迭代和频繁的交付,以应对需求变化,团队通常以小步快跑的方式进行开发。 |
DevOps | 强调开发与运维团队的紧密合作,通过自动化的部署、监控等手段提高软件的交付速度和稳定性。 |
... | ... |
1.6.4 软件开发中的工具
- ①
编程语言
:Java、C、Python、JavaScript 等。 - ②
开发环境
:通常都是 IDE(集成开发环境),如: IntelliJ IDEA、Eclipse、Visual Studio 等。 - ③
版本控制系统
:Git,用于管理代码的版本变更。 - ④
数据库管理系统
:MySQL、Oracle、MongoDB 等,用于数据存储和管理。
1.6.5 总结
- 软件开发是一个多步骤、跨学科的过程,涉及到需求、设计、编码、测试、部署和维护等多个环节。
- 通过这些步骤,开发团队能够根据用户需求创建、优化和交付软件应用,确保其高效、稳定并能够解决实际问题。
1.7 Java 在嵌入式或物联网开发中的应用
- Java 社区提供了一些强大的开源项目和框架,它们为开发者提供了适合低资源设备的功能支持。
框架名称 | 概述 | 主要特点 | 支持协议 |
---|---|---|---|
Eclipse Kura | 开源的物联网 (IoT) 网关平台,专为嵌入式和物联网应用设计,提供数据采集、处理、传输功能,支持现代 Java 环境。 | 1️⃣支持设备管理和远程管理 2️⃣ 支持多种通信协议 3️⃣ 提供数据采集、传输和控制接口 | MQTT、HTTP、CoAP |
Eclipse IoT | 包含多个物联网相关项目的集合,为物联网设备提供开放、标准化的开发平台,核心基于 Java 技术。 | 1️⃣支持多种物联网协议 2️⃣ 提供云平台与设备之间的通信框架 3️⃣ 包括开源设备管理和通信堆栈 | MQTT、CoAP、AMQP |
Pi4J | 为 Raspberry Pi(树莓派)提供的 Java 开发框架,通过 Java 语言与硬件接口进行交互。 | 1️⃣ 支持 Raspberry Pi 的多种硬件接口 2️⃣可控制传感器、LED、马达等硬件 3️⃣易于与 Java 应用程序集成 | GPIO、I2C、SPI |
Spring Boot + Spring Cloud | 企业级应用开发框架,在物联网系统中应用广泛,特别是云端开发。 Spring Boot 提供轻量级框架,Spring Cloud 支持微服务架构。 | 1️⃣ 支持快速构建微服务 2️⃣ 提供设备管理、数据采集和消息传递工具 3️⃣ 与各种 IoT 协议集成 | MQTT、HTTP |
ThingsBoard | 开源的物联网平台,支持设备管理、数据采集、存储以及设备间通信,支持多种协议。 | 1️⃣ 多协议支持 2️⃣ 可视化设备监控 3️⃣ 数据存储、告警与报告功能 | MQTT、CoAP、HTTP |
1.8 Java 的应用场景
- ① 桌面应用开发,如:IDEA、CLion、Pycharm 、Eclipse 等。

- ② 企业级应用开发,如:SpringBoot、SpringCloud 等。
- ③ 移动应用开发,如:Andriod(虽然现在 Kotlin 逐渐成为安卓开发的主流语言,但 Java 仍然广泛用于安卓开发)、医疗设备。

- ④ 科学计算,如:matlab 等。

- ⑤ 大数据开发,如:Hadoop、Flink、Spark 等。

- ⑥ 游戏,如:MineCraft(我的世界)等。

1.9 Java 为什么这么流行?
1.9.1 概述
- 一个编程语言是否流行主要取决于以下四个因素,如下所示:
- ①
用户量
,即:用的人多不多。 - ②
适用面
,即:用的地方多不多。 - ③
与时俱行
,即:是否能跟随时代一起发展。 - ④
自身特点
,即:语言本身是否有什么明显的特点。
- ①
1.9.2 用户量
- ① 国内外编程语言排行榜,如下所示:

- ② 2024 年 Jetbrains 编程语言排行榜,如下所示:

1.9.3 适用面
- Java 语言的应用场景,如下所示:
1.9.4 与时俱进
- 从 JDK9 开始,Oracle 就改变了 Java 的更新速度,每 6 个月发布一个过渡版本(普通版本),每 3 年发布一个长期支持版本(LTS),如下所示:
提醒
之所以从 JDK9 开始,Java 改变版本的发布策略,就是为了紧贴市场的发展,一旦其它的编程语言有了新的东西或者市场上出现新的技术,Java 就可以尽快将其融入进来,成为自己的东西,让自己永远保持生命力,永远不会被市场淘汰。
1.9.5 自身特点
- ①
面向对象
:- Java 是一门纯面向对象的编程语言,几乎所有的代码都需要在类和对象的基础上进行编写。
- 它支持封装、继承和多态等面向对象的特性,能够帮助开发者更好地管理和组织代码,提高代码的复用性和维护性。
- ②
安全型
:- Java 提供了多重安全机制,保障应用程序的安全性,如:它通过字节码验证、访问控制、垃圾回收等机制避免了内存泄漏和非法内存访问的问题,从而防止了很多常见的安全漏洞。
- Java 的安全模型使其特别适用于网络编程和分布式应用。
- ③
多线程
:- Java 内建了对多线程的支持。
- Java 的线程模型简单而强大,Java 提供了
Thread
类和Runnable
接口,开发者可以轻松地实现多线程并发处理,这使得 Java 成为开发高性能并发程序和服务器端应用的理想选择。
- ④
跨平台
:- Java 的口号是“一次编写,到处运行”,Java 程序经过编译后会转换成字节码,然后通过 Java 虚拟机(JVM)运行。
- 由于 JVM 存在于各种平台(Windows、Linux、macOS 等),Java 程序可以在不同操作系统之间无缝运行,无需修改代码。
- ⑤
开源
:- Java 是开源的,尤其是其核心类库和 JVM 实现都可以免费使用。
- 像 OpenJDK 这样的开源项目使得 Java 社区能够自由修改和发布 Java 相关的技术,这促使了 Java 的广泛采用和生态系统的不断发展。
- ⑥
简单易用
:- Java 在设计时去除了许多复杂的特性(指针运算),使得编程变得更加简单。
- Java 的语法清晰、结构化且容易理解,这使得 Java 比较适合初学者入门。
- 同时,Java 拥有丰富的标准库和强大的开发工具,进一步降低了开发难度。
第二章:计算机常识
2.1 字节(Byte)
2.1.1 概述
- 对于
字节(Byte)
,绝大部分人都不会陌生,因为我们经常会和其打交道,如下所示:

字节(Byte)
是计算机中数据存储和传输的基本单位(最小计量单位),它通常由 8 个位(bit)组成。
提醒
- ① 在生活中,我们经常使用
厘米
(cm)、米
(m)等作为长度
的计量单位,使用秒
(s)、分钟
(m)、小时
(h)等作为时间
的计量单位。 - ② 只不过,在计算机中,使用
字节
作为计算机中存储数据
的最小计量单位。
- 位(bit)是信息的最小单位,它只有两种状态(0 或 1)。因此,字节是处理计算机内存和数据交换时的一个重要单位。
2.1.2 字节的基本特征
- ①
大小
:一个字节由 8 个位(bit)组成,字节可以表示从 0 到 255(2^8 - 1)之间的整数值。 - ②
存储
:在计算机内存中,字节是数据存储的基本单位。每个字节可以表示一个字符、数字、符号等,如:ASCII 编码表使用一个字节来表示一个字符(字母、数字或标点符号)。 - ③
数据传输
:网络通信、磁盘存储和内存数据传输通常是按字节为单位进行的。
2.1.3 字节和其他单位的关系
- ①
1 字节 = 8 位(bit)
,即:1 B = 8 b。 - ②
1 千字节(KB)= 1024 字节
,即:1 KB = 1024 B。 - ③
1 兆字节(MB)= 1024 千字节
,即:1 MB = 1024 KB 。 - ④
1 吉字节(GB)= 1024 兆字节
,即:1 GB = 1024 MB。 - ⑤ ...
2.1.4 字节的应用场景
- ①
字符编码
:一个字节
常用来表示计算机中的字符,特别是在旧的字符编码(ASCII)中。 - ②
内存存储
:计算机内存的大小常用字节
为单位,如:4GB 的内存表示计算机有 4,294,967,296 字节的内存。 - ③
文件大小
:操作系统显示文件的大小时,通常以字节
为基本单位,如:一个文本文件的大小可能是 1 KB(1024 字节)或者几 MB(兆字节)。
2.2 常用的 DOS 命令(⭐)
2.2.1 概述
- DOS 命令(Disk Operating System Command)是用于操作 DOS(磁盘操作系统)和其衍生系统(Windows 命令行界面)的一组指令。
- 它们通过命令行界面(CLI)进行输入,用来执行各种任务,如:管理文件、操作目录、配置系统设置、诊断硬件问题等。
- DOS 命令是基于文本的,用户通过键盘输入命令来与计算机交互。
2.2.2 如何打开 DOS 命令窗口?
- 第一种方法:在 Win11 的
搜索
中,直接输入cmd
命令,然后回车
,如下所示:

- 第二种方法:使用
win + r
快捷键,直接输入cmd
命令,然后回车
,如下所示:
提醒
点我查看 win + r
快捷键


2.2.3 DOS 命令窗口解析
- ① 命令行提示符:命令提示符是命令窗口中的一部分,表示当前系统状态和用户可以输入命令的位置,它通常会显示计算机的当前目录路径。

- ② 输入命令的区域:在提示符后,用户可以输入 DOS 命令。

- ③ 输出结果区域:当用户输入命令后,命令行界面会显示命令的输出结果,通常为某些操作的执行结果,如:显示目录列表、错误信息等。

2.2.4 常用的 DOS 命令
2.2.4.1 切换盘符
- 命令:
shell
d:
1
- 示例:切换 D 盘
cmd
d:
1

2.2.4.2 切换到指定的目录
- 命令:
shell
# cd . 切换到当前目录
# cd .. 切换到上一级目录
cd 指定的目录路径
1
2
3
2
3
- 示例:切换到指定的目录
cmd
cd Pictures
1

- 示例:切换到指定的目录
cmd
cd Documents\Navicat
1

- 示例:切换到上一级目录
cmd
cd ..
1

2.2.4.3 创建新目录
- 命令:
shell
mkdir 目录名 # 可以是多级目录 a\b\c
1
- 示例:创建一级目录
cmd
mkdir abc
1

- 示例:创建多级目录
cmd
mkdir abc\cba
1

2.2.4.4 删除空目录
- 命令:
shell
rmdir 目录名 # 目录需要是空目录
1
- 示例:删除指定的空目录
cmd
rmdir abc
1

2.2.4.5 清屏
- 命令:
shell
cls
1
- 示例:
cmd
cls
1

2.2.4.6 退出命令行窗口
- 命令:
shell
exit
1
- 示例:
cmd
exit
1

2.2.4.7 创建文件
- 命令:
shell
echo "xxx" > 文件名
1
- 示例:创建文件的同时,写入内容
cmd
echo "abc" > abc.log
1

2.2.4.8 删除文件
- 命令:
shell
del 文件名
1
- 示例:删除指定的文件
cmd
del abc.log
1

- 示例:批量删除文件
cmd
del *.log
1
