java数据库高级教程 三妹好奇Java?二哥先让买烟考验诚心再详细解释

网安智编 厦门萤点网络科技 2025-07-20 00:06 91 0
“二哥,到底什么是 Java?给我说说呗。” “三妹啊,这就直奔主题了啊,先去给哥买包烟吧,哥先考验考验你的诚心。” (五分钟过后) “三妹啊,你怎么还不去?” “二哥,掏钱啊。” 真是亲妹啊,买包烟还得我掏钱,关键是还得给跑腿费。十分钟后...

“二哥,到底什么是 Java?给我说说呗。”

“三妹啊,这就直奔主题了啊,先去给哥买包烟吧,哥先考验考验你的诚心。”

(五分钟过后)

“三妹啊,你怎么还不去?”

“二哥,掏钱啊。”

真是亲妹啊,买包烟还得我掏钱,关键是还得给跑腿费。十分钟后,三妹从楼下小卖部买了一包熊猫回来了,我用 Zippo 火机点了一支——这火机是 21 岁生日的时候初恋女友送我的,质量确实不错,现在还在用。

“三妹啊,听我慢慢来给你解释。”

Java 是一门计算机编程语言,高级、健壮、面向对象,并且非常安全。它由 Sun 公司在 1995 年开发,主力开发叫 James ,被称为 Java 之父,就是下图这位,头秃的厉害。

Java虚拟机JVM原理_Java编程语言发展历史_java数据库高级教程

“三妹啊,你要不要再考虑考虑?做程序员不容易啊,很容易头秃的!”

“二哥,你咋没有秃呢?是因为你不够厉害吗?”

这孩子,嘴咋这么损呢?

Java 在叫“Java”之前,其实叫 Oak(橡树的意思,我感觉好像比 Java 好听一些)。怎么想到橡树的呢?James 坐在办公室,望向窗外,视野里出现了一颗橡树。不过,遗憾的是,Oak 已经被另外一家公司注册了,因此 1995 年 5 月 23 日,Oak 语言改名为 Java。

Java 这名字并不是 James 的首选,也不是命名团队的首选。团队其他人员更青睐 Silk(丝绸),但 不喜欢,他本人喜欢的是 Lyric(抒情诗),但没通过律师这一关。最后,排在第四位的“Java”脱颖而出。是不是像极了婴儿没生下来之前,家人就着急着起名的那种感觉,这个你觉得不行,那个他觉得不行,最后叫了“狗蛋”()。

James 回忆说,“Java”是一个叫 Mark 的人提议的,他是在一家咖啡店得到灵感的。奇妙的是,“Java”这个单词也是印度尼西亚爪哇岛的英文名,因生产咖啡而闻名,巧不巧?

使用十六进制编辑器(比如说 )打开由 Java 源代码编译出的二进制文件(.class 文件,后面会详细介绍,先不着急),就可以看得到,最前面的 8 个字符是 CA FE BA BE(定义文件类型的魔数),即词组“CAFE BABE”(咖啡屋宝贝),是不是还挺有意思的?

Java虚拟机JVM原理_java数据库高级教程_Java编程语言发展历史

“二哥,能给我展示一段 Java 代码吗?我想近距离感受一下。”

“三妹啊,马上就来。”

我噼里啪啦在键盘上一阵狂按,详细见

“好,你看,就这样子。”

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

“二哥,这都什么跟什么啊,看得一头雾水。”

“三妹啊,先不要着急,Hello World 这段代码以后再慢慢消化,现在就是让它来给你打个招呼。”

“好吧。”

20 世纪 90 年代,单片式计算机系统诞生。单片式计算机系统不仅廉价(之前的计算机非常庞大,并且昂贵),而且功能强大,可以大幅度提升消费性电子产品的智能化程度。

Sun 公司为了抢占市场先机,在 1991 年成立了一个由詹姆斯·高斯林(James )领导的,名为“Green”的项目组,目的是开发一种能够在各种消费性电子产品上运行的程序架构。

项目组首先考虑的是采用 C++ 来编写程序,但 C++ 过于复杂和庞大,再加上消费电子产品所采用的嵌入式处理器芯片的种类繁杂,需要让编写的程序能够跨平台运行并不容易——C++ 在跨平台方面做得并不好。

思前想后,项目组最后决定:在 C++ 的基础上创建一种新的编程语言,既能够剔除 C++ 复杂的指针和内存管理,还能够兼容各种设备。这语言最初的名字叫做 ,文件扩展名为 .gt。这个名字叫的比较随意,就因为项目组叫 Green,没什么特殊的寓意。

Oak 是“Java”的第二个名字,这次就有点意义了。Oak(橡树)是力量的象征,被美国、法国、德国等许多欧美国家选为国树。橡树长下面这样。

Java编程语言发展历史_java数据库高级教程_Java虚拟机JVM原理

1992 年,Oak 的雏形有了,但项目组在向硬件生产商进行商演的时候,并没有获得认可,于是 Oak 就被搁置一旁了。

1994 年,项目组发现 Java 更适合进行 编程。随后,项目组用 Oak 语言研发了一种能将小程序嵌入到网页中执行的技术——。 不仅能嵌入网页,还能够随同网页在网络上进行传输。

不得不感慨一下,技术的更新迭代是真的快, 拯救了 Oak,并使其蜕变成顶天立地的 Java,但 很早之前就被无情地拍死在了沙滩上。是不是很残酷?

1995 年,Oak 被重新命名为“Java”,因为 Oak 被别的公司注册过了。新的名字最好能够表达出技术的本质:(动态的)、(革命性的)、Silk(像丝绸一样柔软的)、Cool(炫酷的)等等。另外,名字一定要容易拼写,念起来也比较有趣。

选来选去,项目组最后选择了“Java”,中文叫“爪哇”。细心的小伙伴可能会发现,Java 这个单词里有一个敏感词,所以有段时间微信(文章专辑名这块)为了禁敏感词,竟然把 Java 都禁了,我当时就只能用爪哇来代替 Java,手动狗头。

“Java”是印度尼西亚爪哇岛的英文名,因生产咖啡而闻名,所以,小伙伴也看到了,Java 这个单词经常和一杯冒着热气的咖啡一起出现。

java数据库高级教程_Java虚拟机JVM原理_Java编程语言发展历史

同年,Sun 公司在 大会上正式发布了 Java 1.0 版本,第一次提出了“Write Once, Run ”的口号。《时代》杂志将 Java 评为 1995 年十大最佳产品之一。

1996 年 1 月 23 日,JDK 1.0 发布,Java 语言有了第一个正式版本的运行环境。JDK 1.0 是一个纯解释执行的 Java 虚拟机,代表技术有:Java 虚拟机、AWT(图形化界面)、。

4 月,十个主要的操作系统和计算机供应商宣称将在产品中嵌入 Java 技术。9 月,已有大约 8.3 万网页应用采用了 Java 来制作。5 月底,第一届 大会在旧金山举行,从此, 成为全世界数百万 Java 语言开发者的技术盛会。

1997 年 2 月 19 日,JDK 1.1 发布,代表技术有:JAR 文件格式、JDBC、、RMI(远程方法调用)。

1998 年 12 月 4 日,JDK 1.2 发布,这是一个里程碑式的版本。Sun 在这个版本中把 Java 拆分为三个方向:面向桌面开发的 J2SE、面向企业开发的 J2EE,面向移动开发的 J2ME。代表技术有:EJB、Swing。

2000 年 5 月 8 日,JDK 1.3 发布,对 Java 2D 做了大幅修改。

java数据库高级教程_Java编程语言发展历史_Java虚拟机JVM原理

2002 年 2 月 13 日,JDK 1.4 发布,这是 Java 真正走向成熟的一个版本,IBM、富士通(二哥曾在这家世界 500 强的日企工作过三年半时间)等著名公司都有参与。代表技术有:正则表达式、NIO。

2004 年 9 月 30 日,JDK 5 发布,注意 Sun 把“1.x”的命名方式抛弃了。JDK 5 在 Java 语法的易用性上做出了非常大的改进,比如说:自动装箱、泛型、动态注解、枚举、可变参数、 循环。

2006 年 12 月 11 日,JDK 6 发布,J2SE 变成了 Java SE 6,J2EE 变成了 Java EE 6,J2ME 变成了 Java ME 6。JDK 6 恐怕是 Java 历史上使用寿命最长的一个版本了。主要的原因有:代码复杂性的增加、世界经济危机、 对 Sun 的收购。

JDK 6 的最后一个升级补丁为 Java SE 6 211, 于 2018 年 10 月 18 日发布——12 年的跨度啊!

2009 年 2 月 19 日,JDK 7 发布,但功能是阉割的。很多翘首以盼的功能都没有完成,比如说 表达式。主要是因为 Sun 公司在商业上陷入了泥沼,已经无力推动 JDK 7 的研发工作。

2009 年 4 月 20 日, 以 74 亿美元的价格收购了市值曾超过 2000 亿美元的 Sun 公司——太阳终究还是落山了。对于 Java 语言这个孩子来说,可以说是好事,也可以说是坏事。好事是 有钱,能够注入资金推动 Java 的发展;坏处就是 是后爸,对 Java 肯定没有 Sun 那么亲,走的是极具商业化的道路。

2014 年 3 月 18 日,JDK 8 终于来了,步伐是那么蹒跚,但终究还是来了。带着最强有力的武器—— 表达式而来。虽然 JDK 19 马上就发布了,但“新版任你发,我用 Java 8”的梗至今还流传着。

2017 年 9 月 21 日,JDK 9 发布。从此以后,JDK 更新版本的速度令开发者应接不暇,半年一个版本,虽然 的目的是好的,为了避免因功能增加而引发的跳票风险,但不得不承认,版本更新的节奏实在是有点过于频繁。

这就导致一个问题,好不容易更新一个版本,用了六个月后, 不维护了。针对这个问题, 给出的解决方案挺奇葩的,每六个 JDK 大版本才会被长期支持(Long Term ,LTS)。

JDK 8 是 LTS 版,2018 年 9 月 25 日发布的 JDK 11 是 LTS 版, 2018 年 3 月 20 日发布的 JDK 10 就可以一笔带过了。

2021 年发布的 JDK 17 是目前最新的 LTS 版本。

JDK 12、JDK 13、JDK 14、JDK 15、JDK 16、JDK 18、JDK 19 都是过渡产品,就好像是试验品一样,不太受开发者待见。

Java 发展到今天已经 20 多年了,作为一个编程语言确实不简单,Java 代表的面向对象思想确实给工程领域带来了革命性的变化,关键是 Java 一直在拥抱变化。

大数据方面,有 Kafka、 Samza、 Storm、 Spark、 Flink,除了 Spark 是基于 JVM 的函数语言 Scala 编写的,其余都是 Java 编写的。

Java 在云时代面临着以 Go 语言为主的容器( 等技术)生态圈的挑战,但是,Java 的大型分布式系统越来越多,Java 在云计算与分布式系统中还是扮演着主要角色,并且形成了一个大型的生态圈。

虽然 Java 和 C++,C 一样,都“老”了,被其他语言不断地挑战,但只有强者才有机会接受挑战,对吧?我相信,Java 的未来依然很光明。

尽管 Java 已经 25 岁了,但仍然“宝刀未老”。在 Stack 2019 年流行编程语言调查报告中,Java 位居第 5 位,有 41% 的受调开发者认为 Java 仍然是一门受欢迎的编程语言。

Java编程语言发展历史_java数据库高级教程_Java虚拟机JVM原理

国内对 Java 的使用率远超国外,所以国内 Java 的市场占有率更大,不管是 2020 年还是 2021、2022、2023 年,短时间内,Java 的霸主地位很难撼动。

虽然这些年 Java 很卷的话,甚嚣尘上,我只能说这样的声音每年都有,听听就好了。

很多大型的互联网公司都在使用 Java,国内最有名的当属阿里巴巴,国外最有名的当属谷歌。那为什么 Java 如此流行呢?

Java 为开发者提供了简单易用的用户体验,与其他面向对象编程语言相比,Java 的设计和生态库具有巨大的优势。Java 剔除了 C++ 中很少使用、难以理解、易混淆的特别,比如说指针运算、操作符重载,内存管理等。

Java 可以做到堆栈分配、垃圾回收和自动内存管理,在一定程度上为开发者减轻了入门的难度。

如果 Java 直接编译成操作系统能识的二进制码,可能一个标识在 操作系统下是1100,而 Linux 下是 1001,这样的话,在 操作系统下可以运行的程序到了 Linux 环境下就无法运行。

为了解决这个问题,Java 先编译生成字节码,再由 JVM(Java 虚拟机)来解释执行,目的就是将统一的字节码转成操作系统可以识别的二进制码,然后执行。而针对不同的操作系统,都有相应版本的 JVM,所以 Java 就实现了可移植性。

Java 适用于网络/分布式环境,为了达到这个目标,在安全方面投入了巨大的精力。使用 Java 可以构建防病毒、防篡改的程序。

从一开始,Java 就设计了很多可以防范攻击的机制,比如说:

Java 在多线程方面做得非常突出,只要操作系统支持,Java 中的线程就可以利用多个处理器,带来了更好的交互响应和实时行为。

“二哥,那 Java 还会继续流行下去吗?”三妹眨了眨她的长睫毛,对我说。

“当然!这主要得益于 Java 广泛的应用场景。”我斩钉截铁地回答到。

与 一样,Java 在大数据领域占据着主导地位,很多用于处理大规模数据的框架都是基于 Java 开发的。

Java编程语言发展历史_java数据库高级教程_Java虚拟机JVM原理

表示,灵活性和流行度是 IoT 程序员选择 Java 的主要原因。Java 提供了大量的 API 库,可以很容易应用到嵌入式应用程序中。相比其他编程语言,比如 C 语言,Java 在切换平台时更加顺畅,不容易出错。

比如 的 平台就使用了 Java 来开发其智能家居解决方案的一部分。

Java 技术对 Web 领域的发展注入了强大的动力,主流的 Java Web 开发框架有很多:

总之, 宣称,Java 正运行在 97% 的企业计算机上——有点厉害的样子。

“二哥,学 Java 到底有没有前途啊?我毕业以后能不能找到工作啊?”

“三妹啊,就目前来说,Java 不仅仅是一门编程语言,它还是一个由一系列计算机软件和规范组成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于以下这些场合。”

时至今日,Java 技术体系已经吸引了 1000 多万软件开发者(随着时间的推移,这数字会越来越大),是全球最大的软件开发团队。Java 能够获得如此广泛的认可,除了它是一门结构严谨、面向对象的编程语言之外,还有很多其他不可忽视的优点:

这一切的一切,都让软件开发的效率大大的提高。

下图是号称史上最惨的 23 届秋招 Java 岗的薪资状况。

Java编程语言发展历史_java数据库高级教程_Java虚拟机JVM原理

24 届秋招 Java 岗的薪资情况。

Java编程语言发展历史_java数据库高级教程_Java虚拟机JVM原理

小红书的 Java 后端岗本科 985 能拿到 48 万的年包,还是很恐怖的,所以,学习 Java 还是很有“钱秃”的。

“噢噢噢噢,那好吧,我先跟着《Java进阶之路》学起来!”

上标星 10000+ 的开源知识库《二哥的 Java 进阶之路》第一版 PDF 终于来了!包括Java基础语法、数组&字符串、OOP、集合框架、Java IO、异常处理、Java 新特性、网络编程、NIO、并发编程、JVM等等,共计 32 万余字,500+张手绘图,可以说是通俗易懂、风趣幽默……详情戳:太赞了, 上标星 10000+ 的 Java 教程