IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 历史课:Java帝国的诞生 -> 正文阅读

[Java知识库]历史课:Java帝国的诞生


前情提要:计算机语言发展史

在计算机问世之后,人们就一直致力于对于计算机语言的开发和发展并期望与这种特殊的机器进行语言逻辑上的沟通和交流。于是,在早期计算机技术还并不成熟的时候,诞生了第一代计算机语言——

机器语言:

我们都知道计算机的基本计算方式都是基于二进制的方式

如:010111001010110010110100

这种代码是直接输入给机器使用的,不用经过任何的转换。不过显然,这种语言对于计算机友好而对于人类的阅读和书写来说十分不友好,不适合人类使用。

因此,为了解决机器语言人类无法读懂的问题,就有人想到了能不能用指令来代替二进制,聪明的人类马上就发明了第二代计算机语言——

汇编语言

汇编语言使用了大量的注记符来代替二进制指令

如:
汇编

但总的来说,汇编语言仍然是面向机器的计算机语言,虽然相较机器语言来说对人类友好得多,但总的来说还是很麻烦。目前来说使用汇编语言做开发的应用应该是已经退出历史舞台了,但是例如逆向工程、机器人、计算机病毒这类更底层的东西也难免还是要与汇编打交道。

Intel公司的创始人之一戈登·摩尔曾经提出过一个著名的摩尔定律:当价格不变时,集成电路上可容纳的晶体管数目,约每十八个月便会增加一倍,性能也将提升一倍。大致意思就是,随着时间推移,计算机的高级程度会几何级数的增长。虽然夸张了些,但大体趋势确实是日新月异的。
摩尔定律
所以,为了应付这么快速的发展,笨重的汇编显然不适合大规模编程,所以,第三代计算机语言应运而生——

高级语言

发展到这一带计算机语言就比较遍地开花了,大致分为面向过程和面向对象两大类。比如计算机系入门语言C语言就是典型的面向过程的语言;而C++、JAVA就是典型的面向对象的语言。

正式开始

一、初问世

1995年,计算机世界,建国23岁周年的C帝国和13周年的C++帝国迎来了他们自建国以来最大的竞争对手:JAVA帝国。起初,他们没有对这位新生的对手对自己在计算机世界的统治地位构成的威胁而在意:

C: “我贴近硬件,运行极快,效率极高;操作系统、编译器、数据库、网络系统等都是我来写的,你能奈我何。”
C++:“我面向对象,还能兼容C,图形领域、游戏等地方都是我的主场。”

但是Java上来就给他们一记重拳:“C语言,你还敢说自己简单,你那个指针,都不晓得把多少程序员搞得焦头烂额、内存分配还得让程序员自己手动释放,编译的时候又不告诉代码什么问题,一运行起来这也是BUG那也是BUG,还有啊,你这叫嚣的跨平台,每一个操作系统都要编写一份函数库,有一点小小错误都会导致编译失败,这叫什么鬼跨平台。还有那个C++,你搞的那么难懂,学习难度那么大,这是给人干的活吗啊?看你的代码程序员不仅脱发还折寿,这种语言要他何用?”

把C和C++一顿狂踩之后,Java又说话了:“诸位,我们这门语言,语法像C,简单易懂,没有指针,没有内存管理,面向对象,类型安全、类库质量高……最重要,我们底层是Java虚拟机,拥有真正的可移植性,编写一次,到处运行。”程序员一看:“咦,这个语言,有两位老大哥的优点,有没有他们的缺点,说不定可以尝试去用一下。”

二、寻找突破

但是,介于当时的C和C++在计算机应用市场的实力实在太过强大了,想着迅速做大做强的Java决定另辟蹊径,将目光转移向当时刚刚兴起的行业——互联网。1995年,网页简单而粗糙,缺乏互动性。于是当时的Java团队就在浏览器上做了个小插件,将Java的运行环境放了上去,这就是Applet(虽然现在已经被js给替代掉了)。但是当时的程序员都纷纷发出惊叹:Watch out!居然可以这么方便,搞出来还这么好看。(比尔盖茨的原话是:这是迄今位置设计的最好的语言。)于是乎,Java火了。无数程序员通过Applet了解到了Java这门语言,许多忍受不了C语言暴政的程序员纷纷跳槽转为为Java效力,就这样,Java团队迅速做大做强。

小插曲:曾经的比尔盖茨在买了Java的许可证之后,在自家的浏览器上也支持了Applet,但是他却想去修改Java,将Java死死的绑在微软这条船上赚钱(一旦阴谋得逞,如今的Java又将变得不可移植了)。当然,这是那群血气方刚的Java开发者无法忍受的,于是他们发起了一场大战,逼着微软退出了Java领域。虽然微软后面又自己开发了自己的.NET,但是影响力始终是比不上Java了。

三、开疆拓土

从95年到97年,短短的两年时间,Java就招募了几十万义士,成为了一股不可忽视的力量。久而久之,小小的Applet水塘已经养不起Java这条蛟龙了。于是Java帝国开始觊觎别人的领地,并制作出了一张讨伐各计算机帝国的日程表,随着国王一声令下,Java帝国一连派出了三路大军:

版本任务
Java2标准版(J2SE)去占领桌面
Java2移动版(J2ME)去占领手机
Java2企业版(J2EE)去占领服务器

但是将还是老的辣,C++把桌面应用的城池守得死死的,开发桌面应用的程序员难以接受使用Java来开发桌面应用,虽然Java有一个swing可以做开发界面,但是开发出来的界面太丑了,和原生的桌面差距比较大,而且为了运行程序还得安装一个虚拟机,所以大家都不太待见他,第一路大军首战失利,败下阵来。与第一路大军相似,第二路大军打了半天最终也是无功而返,因为当时的手机还不是现在的智能机,所能实现的功能十分有限,Java实在是没有什么用武之地。

但是与前两路不通的是,JavaEE一路捷报频传,大家发现Java好像就是为服务器端程序而发明的,它不仅强大、健壮、简单、安全而且跨平台。在之后的若干年的发展中,Java帝国增添了大量优质的平台、系统和工具。比如:

Java的平台、系统、工具
至此,在不断的发展和壮大的过程中,Java程序员已经达到数百万之众,Java语言也完成了从默默无闻到独霸一方的转变,已经没有哪一个公司或是哪一门语言能够对其霸主地位造成威胁了。

四、继续壮大

  • 2006年,一支名叫Hadoop的Java军队横空出世,由于很多Java的程序员在理解了MapReduce之后很快就能编写一些处理海量数据的程序,所以Hadoop便以泰山压顶之势迅速占领了刚刚兴起的大数据领域。
    Hadoop

  • 2008年,HTC手机一出场便对当时新兴的移动互联网市场来了一场大风暴。尽管现在HTC的市场份额并不是很客观,但当时,它独有的Android系统一直到现在都是唯一能与苹果的IOS抗衡的手机系统。Android火了,但运行于Android之上的正是Java。Java王国在谷歌的支持下一雪前耻,以一种意想不到的方式占领了手机端,完成了老大哥JavaME未尽的梦想。

Android

Java的路还在继续往前走


总结

本文借鉴了部分博主的文章,在此统一致谢,如果您还喜欢,麻烦点个赞。 您的支持就是我更新的动力。
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-08 13:34:31  更:2021-08-08 13:34:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/10 21:11:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码