一、JAVA的诞生与成长
起源:Green Team与Java的诞生
Java的起源可以追溯到1990年代,当时Sun Microsystems成立了一个名为Green Team的特别小组,旨在开发一种新型软件以驱动消费电子设备。这个项目的核心成员包括后来被称为"Java之父"的James Gosling。最初,这个项目被命名为Oak,但由于商标问题,后来更名为Java。
发展:从网页到企业级应用
Java的崛起与互联网的快速发展密不可分。1995年,Java 1.0的发布标志着Java语言正式进入大众视野。Java以其"一次编写,到处运行"的特性,迅速在网页开发和企业级应用中占据了一席之地。
挑战与竞争:Java的坚韧成长
Java的发展并非一帆风顺。随着技术的发展,其他编程语言如Python、JavaScript等逐渐崭露头角。Java面临着来自各方面的挑战,但它以其坚韧和适应性不断成长。
智能手机的兴起:Java的再生
2008年,随着智能手机的兴起,Java再次焕发新生。Android操作系统的出现使得Java在移动开发领域得到了广泛的应用。
Java编程语言在全球排名中的现状
近年来,Java在全球编程语言排名中的位置发生了一些变化。根据RedMonk发布的编程语言排行榜,Java一度从第二名下降到了第三位,但近期又与Python并列第二。

同时Java语言自创立以来历经20多年一直经久不息,在全球语言排名中一直位居前列

二、java可以做的事情
作为一种通用型的语言,Java 能做的事情有很多,具体包括:
在这几个开发方向中,网站后台开发人数最多,估计占到一半以上;其次是 Android APP 开发,从业人员也众多;接着是大数据和客户端程序开发,相对来说人数就少了;至于嵌入式开发,现在已经没有人使用 Java 了。
网站后台开发
能够进行网站后台开发的编程语言有很多,包括 PHP、C#、Java、Ruby、Python、JavaScript、Go 等,其中 Java 市场份额最大,更适合中大型 Web 项目,这是因为:
- Java 是一种半编译型语言,开发比较方便,性能也不算差;
- Java 生态繁荣,拥有庞大的类库和框架,大部分常用功能都有人帮你封装好了;
- Java 能够很好地进行模块化开发和分布式开发,更有利于团队管理和协作。
从某种程度上说,Java 几乎是中大型网站开发的唯一选择,因为中大型网站既需要团队协作,也需要部署到服务器集群,而随着 Spring Boot 和 Spring Cloud 框架的成熟,Java 在模块化和分布式方面拥有了得天独厚的优势。
使用 Java 开发的著名网站真是太多了,数不胜数,Google、Facebook、Amazon、淘宝、百度、携程等国内外巨头无一不在使用 Java。
Java 的火爆也催生了大量线上/线下培训班,其中绝大部分都是针对 Web 后台方向。没办法,Java Web 岗位需求量太大了,曾经一度供不应求。
各位读者如果想学习 Java,小编也建议选择 Web 开发方向,毕竟工作岗位多,薪资待遇高。
Android APP 开发
Android 手机从 2010 年就开始爆发了,但是直到 2017 年 Android 官方才推出自己的编程语言 Kotlin;在这之前,Java 是 Android APP 开发的唯一语言。
在 Android 手机快速增长的前几年,APP 开发人员曾经一度供不应求,各家公司也相互抬价来哄抢人才。
除了手机,还有很多其它智能硬件也使用 Android 作为操作系统,包括平板、电视、汽车等。
但是随着智能手机增量的放缓,以及 APP 的饱和,市场对于 Android APP 开发人员的需求也逐渐降温了,大概从 2016 年以后,Android APP 开发人员就不再吃香了,慢慢回归理性了。
使用 Java 开发的 Android APP 太多了,比如抖音、快手、微信、淘宝、Facebook、Instagram、WhatsApp 等。
大数据开发
大数据技术是当今最流行最热门的话题,它也是未来的发展趋势。大数据技术用来从不规则、大规模的数据集中分析和提取出有用信息。
开源软件 Hadoop 是大数据处理的热门框架之一,它就使用 Java 语言编写,要想熟练地使用 Hadoop,就得掌握 Java。
相比其它编程语言,Java 在垃圾自动回收、堆内存和栈内存分配方面拥有更大的优势,这使用 Java 更加适合处理大数据集。
除了 Hadoop,还有很多其它基于 Java 的大数据工具,比如 Apache HBase、ElasticSearch、Accumulo 等。
客户端程序
客户端程序也叫"GUI 程序",是指运行在 PC 上的、带有操作界面的、可以进行安装的软件,比如 QQ、迅雷、360 等。
Java 附带了 AWT、Swing 和 JavaFx 模块,它们都是用来开发 GUI 程序的。这些模块提供了丰富的 API,能够让我们开发出复杂炫酷的界面,比如选项卡、表格、颜色拾取器、树形菜单、3D图形等。
使用 Java 开发 GUI 程序的真实案例:
- Adobe Acrobat Reader
- ThinkFree Office
- Eclipse
- IntelliJ IDEA
- NetBeans
但是随着云计算的发展,以及 Web 前端的强大,很多常见功能都可以通过网站来提供了,客户端程序已经不再是各个互联网公司率先考虑的平台,只有那些运算量大、数据量大的项目,才会考虑开发客户端程序。
互联网的冲击使得客户端开发成了一个没落产业,选择这个方向的人越来越少了。
另外,客户端开发的技术路线也有很多,包括 C/C++、C#、Electron、Python、易语言等,Java 只是其中之一,并且不算主流的技术路线。
如果读者对客户端程序开发感兴趣,可以关注一下《C/C++ Windows 软件开发学习路线》,它将告诉你使用 C/C++ 开发一个客户端程序的完整流程。
嵌入式开发/功能手机开发
Java 有一个裁剪过的版本,叫做 J2ME(Java 2 Platform Micro Edition),主要用于嵌入式系统或者功能手机的开发。
嵌入式系统是完整工业产品的一部分,由微型芯片、微处理器等构成,它们往往比较廉价,性能不高,所以一般被当做低级系统。
Java 能够有效且快速地处理程序异常,因此它也可以开发运行在低级系统上的应用程序,比如 SIM 卡、蓝光 DVD 播放机、机顶盒上的控制程序。
早期的功能手机也可以看成一个嵌入式系统,在智能机还没有大行其道之前,还记得摩托罗拉、诺基亚手机上的小游戏吗?这些就是使用 Java J2ME 开发的。另外,诺基亚上流行的 WhatsApp 也是用 J2ME 开发。
咳咳,Java 嵌入式开发这个方向已经死透了,大家了解一下即可,不要再去学习或者研究了。
总结
虽然 Java 能够胜任的开发方向有很多,但是随着软件产业的快速发展,其中一些开发方向已经逐渐没落,或者被其它技术栈取代了。
从整体上看,Java 从业人数最多的还是网站后台方向,因为 Java 在中大型 Web 项目开发方面具有得天独厚的优势。
三、Java经久不息的原因
1.一次运行到处编译
首先是java一次编程到处运行的机制发力,由于java并非是直接运行在本地,而是运行在JVM虚拟机上,简单来说,Java程序并不直接运行在操作系统上,而是运行在JVM这个中间层上,只要当前设备安装了对应版本的JVM就可以直接运行java
具体原理(三步走)
Java源代码编译成字节码(.class文件)
Java源代码(.java文件)通过 javac 编译器编译后,生成的是字节码(.class文件),而不是直接生成特定平台的机器码。
字节码是一种中间代码,它和具体的操作系统、硬件无关。
JVM作为"翻译官"
不同平台(Windows、Linux、macOS)有不同的JVM实现。
JVM会将字节码翻译成当前平台能理解的机器码,再由操作系统执行。
跨平台的关键:JVM的平台相关性
Java程序本身是平台无关的(因为是字节码)。
但JVM是平台相关的------Oracle为不同操作系统和硬件架构提供了对应的JVM版本。
所以,只要你的设备装了JVM,就能运行Java程序。
举个生活中的例子
想象你写了一本小说(Java源代码),想让全世界的人读。
传统方式:你得为每个国家的人单独翻译成他们的语言(比如中文版、英文版、法文版),这就是C/C++的"一次编写,到处编译"。
Java方式:你只写一个"通用版本"(字节码),然后给每个国家的人发一个"翻译机"(JVM),他们用翻译机就能读你的小说。
为什么其他语言(如C/C++)不能跨平台?
C/C++程序在编译时直接生成特定平台的机器码,比如Windows的 .exe 文件不能在Linux上运行。而Java通过JVM屏蔽了底层差异,实现了"平台无关性"。
Java跨平台的本质是:Java程序运行在JVM上,而JVM适配了各种平台。这就像你写代码时面对的是一个"虚拟的计算机",而真正的计算机通过JVM来模拟这个"虚拟计算机"的行为。
2. 极其庞大且成熟的生态系统 🌳
这是 Java 最大的护城河之一。经过 20 多年的发展,Java 拥有世界上最大、最成熟的开源生态。
-
**框架支持**:在企业级开发领域,**Spring**(及 Spring Boot、Spring Cloud)框架几乎成为了行业标准,极大地简化了后端开发、微服务治理和分布式系统的构建。此外,还有 Hibernate、MyBatis 等优秀的 ORM 框架。
-
**工具与库**:无论你需要做大数据(Hadoop、Spark)、移动端开发(Android SDK)、还是测试(JUnit),都有现成的、经过大规模验证的开源库可供使用,开发者几乎不需要"重复造轮子"。
3. 企业级的稳定性与健壮性 🛡️
Java 从设计之初就强调稳定性,非常适合构建高并发、高可用的企业级应用。
-
**自动内存管理(GC)**:Java 的垃圾回收机制自动管理内存,大大减少了因手动释放内存而导致的内存泄漏和程序崩溃风险。
-
**强类型与异常处理**:严格的编译期检查能帮开发者在早期发现错误,而完善的异常处理机制保证了程序的健壮性。
-
**安全性**:Java 拥有沙箱安全模型、字节码验证器等机制,非常适合处理银行转账、电商交易等对安全性要求极高的场景。
4. 持续进化的能力 🚀
很多人对 Java 的刻板印象是"冗长"、"老气",但实际上 Java 的更新迭代非常活跃且稳健。
-
**现代化语法**:从 JDK 8 的 Lambda 表达到现在的虚拟线程(Virtual Threads,JDK 21),Java 不断引入函数式编程、模式匹配等现代语言特性,让代码更简洁、并发性能更强。
-
**云原生支持**:面对微服务和云原生浪潮,Java 通过 GraalVM 实现了原生镜像编译,大幅缩短了启动时间,同时 Quarkus、Micronaut 等轻量级框架也让 Java 在容器化环境中更具竞争力。
5. 庞大的开发者社区与人才储备 👥
-
**人才众多**:全球有数百万的 Java 开发者,企业招聘相对容易。
-
**社区活跃**:遇到技术难题时,几乎总能在 Stack Overflow、GitHub 或各大技术论坛上找到解决方案。这种"人多力量大"的效应,降低了企业的技术选型风险。
6. 优秀的向后兼容性 🔄
Java 非常注重兼容性,这为企业省去了巨大的维护成本。
- 用旧版本 JDK 编写的代码,通常可以在新版本的 JVM 上无缝运行。这不像 Python 2 到 Python 3 那样有巨大的割裂性,保证了存量系统的长期稳定维护。
总结优势:
不断提升,适应云原生和微服务新趋势 |
| 人才丰富 | 全球超千万开发者,社区活跃 | 招聘容易,技术问题解决快,项目风险低 |
简而言之,Java 不只是一个编程语言,它更是一个极其成熟、安全、且拥有强大社区支持的技术平台。只要企业级应用和后端服务存在,Java 就很难被完全替代。
相信经过上面的描述:大家对于java有了基本的了解,现在让我们来正式操作java
四 、jdk的下载安装
1、JDK官网
官网地址:
Java Downloads | Oracle 中国
https://www.oracle.com/cn/java/technologies/downloads/

选择"Java archive",
鼠标往下滑,选择对应的jdk版本,
2、基于JDK官网下载JDK版本
第一步,选择jdk版本,

第二步,选择相应操作系统,

第三步,选择下载(平时在开发时,会在同一台电脑上安装多个jdk版本,以适应不同的项目需求的要求,普遍都是选.exe文档进行安装)
解释一下(jdk不同的安装包):
.zip: 下载后,需要解压;
.exe:下载后,双击就可以进行安装了(安装简单);
.msi:适合企业环境,适合批量安装;
第四步,等待下载成功,
然后开始无脑下一步往下点点点

注意,个人建议不要下在C盘,因为如果不指定,会自动下载C盘,当然如果下载到C盘问题也不大,不会影响运行
五,java环境变量配置
1首先解释为何要配置环境变量
简单来说,配置 Java 环境变量的核心目的是让操作系统能在任意目录下找到并执行 Java 相关命令(如java、javac),同时让程序能定位到 Java 的核心运行环境,具体可以拆解为以下 3 个关键原因:
1. 让系统全局识别 Java 命令(最核心)
Java 安装后,java.exe(运行字节码)、javac.exe(编译源码)等可执行文件存放在JDK安装目录\bin下。
- 如果不配置环境变量:你只能在
bin目录下执行javac HelloWorld.java、java HelloWorld等命令,换个目录就会提示「'javac' 不是内部或外部命令」------ 因为操作系统不知道这些命令在哪。 - 配置环境变量(主要是
PATH):把JDK的bin目录添加到系统PATH中,操作系统在执行java/javac时,会自动遍历PATH里的目录找对应程序,你在电脑任意文件夹下都能编译、运行 Java 代码。
2. 让程序找到 Java 运行时环境(JRE/JDK)
除了PATH,通常还会配置JAVA_HOME(指向 JDK 根目录):
- 很多基于 Java 的框架 / 工具(如 Spring Boot、Tomcat、Maven)会读取
JAVA_HOME,自动定位 Java 的核心类库、运行时环境,无需手动指定路径; - 如果不配置
JAVA_HOME,这些工具会报错「找不到 Java 运行环境」,因为它们不知道该用哪个版本的 Java 运行。
3. 多版本 Java 切换(实用场景)
如果电脑装了多个 JDK 版本(如 JDK8、JDK17),只需修改JAVA_HOME和PATH指向不同版本的目录,就能快速切换全局使用的 Java 版本,无需重新安装或复制文件。
举个直观例子
假设你的 JDK 安装在C:\Program Files\Java\jdk1.8.0_301,bin目录是C:\Program Files\Java\jdk1.8.0_301\bin:
- 未配置环境变量:你必须打开命令行,切换到
bin目录才能执行javac; - 配置后:在桌面、D 盘任意文件夹,直接输入
javac -version就能显示 JDK 版本,编译运行代码不受目录限制。
核心环境变量说明
表格
| 环境变量 | 作用 | 配置示例 |
|---|---|---|
JAVA_HOME |
指向 JDK 根目录(非 bin) | C:\Program Files\Java\jdk1.8.0_301 |
PATH |
追加 JDK 的 bin 目录 | %JAVA_HOME%\bin(通过 % JAVA_HOME% 复用,方便切换版本) |
CLASSPATH(可选) |
指定 Java 类库路径(Java 1.5 + 后可省略,除非用老旧代码) | .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar |
总结
- 全局执行命令 :配置
PATH后,任意目录可执行java/javac,无需切换到 JDK 的 bin 目录; - 定位运行环境 :
JAVA_HOME让框架 / 工具自动找到 Java 核心文件,避免手动指定路径; - 便捷切换版本:修改环境变量即可快速切换多版本 Java,适配不同项目需求。
简单记:环境变量就是给操作系统和程序「指路」------ 告诉它们 Java 的命令、核心文件在哪,不用每次都问你
2.具体操作步骤
一 首先先进入你的jdk下载目录,比如说我的
在地址栏上先复制
然后点击系统设置,搜索编辑系统环境变量点击

然后新建JAVA_HOME把刚才复制的jdk地址复制进去


然后点击PATH

选择新增

新增环境变量(%JAVA_HOME%\bin),点击确定,
然后键盘点击win+R输入cmd就可以进入命令行界面

输入java -version 注意 java和- 之间有空格

出现版本号就代表配置成功
六、下载java专用工具IDEA并写第一行java代码
1.首先下载ToolboxAPP 官网链接https://www.jetbrains.com.cn/en-us/toolbox-app/

下载这个软件之后就可以下载并实时管理,开发idea所在公司旗下所有软件,

下载IDEA之后,是需要先激活,或者可以先点击免费使用三十天

然后开始新建我们的第一个项目

记得选择自己刚才下载好的jdk版本

然后我们在src下面创建我们的第一个java文件,当然不在src下面创建也可以

创建完成后先写完基本结构输入psvm

快速生成结构

然后写我们第一段代码并打印HelloWorld,也可以输入快捷单词

写完

之后点击运行或者调试

运行或者调试结果

总结:AI智能应用开发(Java)起点-终点 -1java的前世今生andJava环境配置、jdk下载,以及Idea下载和基本应用 讲解完毕