Java匹马行天下之Java帝国的崛起大结局

前言:

【博客*缘】

网络真情伴,

博客友谊连。

笑中藏泪暖中寒。

回想那些悲喜,

苦涩也缠绵。

往事难回首,

新篇染旧言。

世间多少梦能全。

感谢相牵,

感谢遇时缘。

感谢墨中同守,

再聚是何年。

人生只如初见。

一首《博客*缘》送给一直鼓励我支持我陪伴我的博友们。

已经有博友催更了,那我今天直奔主题,欢迎博友们观看小型宫斗剧《Java帝国的崛起》,此剧共三篇

C国程序员的秃头原因

Java国出了个Java

接下来请看《Java帝国的崛起》大结局

前文回顾

上文书《Java国出了个Java》中说到,被Java国收留的程序员们决定重新定义一门新的编程语言,这门语言语法有点像C语言,这样大家容易接受。

没有C语言那样的指针。

再也不用考虑内存管理。

真正的可移植性,编写一次,到处运行。

面向对象。

类型安全。

还有,我们要提供一套高质量的类库,随语言发行。

最重要的是他们把这门语言起名为Java,整个Java国举国欢庆。现在我要改口了,把从C国逃出来加入Java国的程序员就叫Java程序员了。

不鸣则已,一鸣惊人

凡事都是说起来简单做起来难,单说这个可移植性吧,要想编写一次,到处运行可不是什么简单的事。为了实现跨平台,Java程序员们在操作系统和应用程序之间增加了一个抽象层:Java虚拟机。用Java写的程序都运行在虚拟机上,除非个别情况,都不用看到操作系统。

跨平台

刚才提到了一个专业术语叫跨平台,我来解释一下:

跨平台概念是软件开发中一个重要的概念,即不依赖于操作系统,也不信赖硬件环境。在一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。

Java的跨平台

Java的跨平台是相对于其他编程语言而言的,通过Java语言编写的应用程序在不同的系统平台上都可以运行。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。比如在前文中提到的C语言,在Windows系统上编译的C语言程序,在Linux系统上是不能运行的,而Java语言在不同平台上运行时不需要重新编译。

Java跨平台的原理:java的跨平台是通过Java虚拟机(JVM)来实现的。

Java虚拟机(JVM)

Java源程序想象成我们的C源程序,Java源程序(.java)编译后生成的字节码(.class)就相当于C源程序编译后的二进制可执行文件。JVM虚拟机相当于计算机系统(操作系统+硬件环境),Java解释器相当于CPU。

.exe文件直接在Windows操作系统下运行,在CPU上运行的是机器码(.exe文件)

.class字节码文件是运行在JVM虚拟机下的,在Java解释器上运行的是Java字节码文件。

Java解释器相当于运行Java字节码的CPU,但该CPU不是通过硬件实现的,而是用软件实现的。Java解释器实际上就是特定的平台下的一个应用程序。只要实现了特定平台下的解释器程序,Java字节码就能通过解释器程序在该平台下运行,这是Java跨平台的根本。当然,并不是在所有的平台下都有相应的Java解释器程序,这也是Java并不能在所有的平台下都能运行的原因,它只能在已实现了Java解释器程序的平台下运行。

介绍了挺多,好好的故事,中间这样穿插一下确实影响读者思路,不过看你是怎样想的,如果你是抱着看故事的心态来的,那中间介绍的这一大串就可以跳过不看了,但如果你是抱着通过看故事学习的态度来的,那就耐心的看吧,就是给你写的。

为了吸引更多的程序员加入Java国,Java程序员们决定搞一次演示,向大家展示Java的能力。是骡子是马,拉出来遛遛再说,出世未久的Java涉世不深,还不是很完善,但也是“麻雀虽小五脏俱全”了。Java程序员们盯上了刚刚兴起的互联网,1995年时候的网页简单而粗糙,缺乏互动性。Java程序员们正是看到了这一点,灵机一动,在浏览器上弄了一个小插件,把Java运行环境放了上去。然后在上面开发了一个图形界面的程序(Applet),让它看起来美轮美奂、震撼人心。在当时,要是有程序员能看到Java程序员们搞出来的程序,相信都会发出“Wow,牛逼”的惊叹,为之倾倒。

Java火了

通过Applet,无数的程序员看到了Java这门语言,在了解了这门语言的特性以后,很多无法忍受C语言的程序员都加入了Java国,成了Java程序员,由此Java国的领地也迅速扩大。

Java此刻是真的火了,连C国里的一些商业巨头也纷纷跑来和Java国谈合作,其中就包括Oracle、微软这样的巨头。微软的头领比尔盖茨还说:这是迄今为止设计的最好的语言!(风雨欲来花满楼,情节自由发挥想象)

像比尔盖茨这样的巨头能来Java国谈合作,Java国国王感觉喜从天降,幸福的不得了。之前也说了,Java国国王是个十分开明的君主,为人豪爽大方,深得民心,他对来谈合作的外宾都说,只要你们想用,就拿去用,我们对所有人都完全免费开放,欢迎大家使用。本来这对那些来谈合作的人来说都是大好事,但是比尔盖茨有点不地道,甚至有些贪婪,他在得到Java国王的许可后,回到了C国,虽然在自家的浏览器上也支持Applet,但比尔盖茨却试图偷偷地修改Java,想把Java绑死在自家的操作系统上赚钱,这样Java会变得不可移植。

发生这种事,Java国国王就不能忍了,我们自己都是免费开放的,而你却拿我们的东西赚钱,这违背了Java国的信仰,绝不能忍。于是Java国和微软发生了一场旷日持久的游击战争,逼着微软退出了Java领域。不过微软毕竟也是个经历过大风大浪的人,怎会没有后手呢,退出Java领域后他们便开发了自己的.NET,这是后话。

开拓疆土

从1995年到1997年,Java国依靠Java程序员们不断地在网络上攻城略地、开拓疆土,Java国的Java程序员不断增加,达到几十万之众,已经成为一股不容忽视的力量。但是大家发现,此时的Java除了Applet,以及一些小程序之外,似乎干不了别的事情。C国的程序员还不断嘲笑Java程序员们速度慢,像一个玩具。

到了1998年,Java程序员们和Java国王密谋,最终Java国王决定派出三支Java程序员军队向不同领域扩展。

Java2标准版(J2SE):去占领桌面

Java2移动版(J2ME):去占领手机

Java2企业版(J2EE):去占领服务器。

“风萧萧兮易水寒,壮士一去兮不复还”,虽然我知道此句用在此处不合适,但我想表达一种气势,我想起了这一句,史书上说,在送荆轲时,高渐离击筑,荆轲悲歌“风萧萧兮易水寒,壮士一去兮不复还”,唱的太悲壮了,以至于听者嗔目,发尽上指。 一段唱毕,只听见荆轲仰头长叹一声,天空中居然出现一道七彩虹。高渐离趁势变了一个调,乐音显得更为激昂,荆轲继而唱道:探虎穴兮入蛟宫,仰天呼气兮成白虹。太子丹最后被彻底地感动了,跪在地上向荆轲敬了一杯酒。好,抒情至此。要是有卖弄文学之嫌,还望博友海涵啊,此乃情到深处,犹如箭在弦上不得不发。

尽管计划很周密,但是天有不测风云,派出去的三支队伍有两支很快败下阵来。

J2SE的首领发现,开发桌面应用的程序员根本接受不了Java,虽然Java程序员有做得很优雅的Swing可以开发界面,但是开发出来的界面非常难看,和原生的桌面差距很大。尤其是为了运行程序还得安装一个虚拟机,大家都接受不了。

J2ME也是,一直不受待见,当然更重要的原因是乔布斯还没有发明新手机,移动互联网还没有启动。

失之东隅,收之桑榆。J2EE去正赶上了好时候,互联网大发展,大家忽然发现,Java简直是为些服务器端程序而发明的!强大、健壮、安全、简单、跨平台!Java国授权BEA公司第一个使用J2EE许可证,推出了WebLogic,凭借其集群功能,第一次展示了复杂应用的可扩展性和高可用性。

这个后来被称为中间件的东西把程序员从事务管理、安全管理、权限管理等方面解放出来,让他们专注于业务开发,这立刻捕获了大量程序员的心。

很快,Java国的Java程序员就达到了数百万之众。

榜样的力量是无穷的,有了第一个吃螃蟹的,很快,其他商业巨头也纷纷入场,尤其是IBM,在Java上疯狂投入,不仅开发了自己的应用服务器WebSphere,还推出了Eclipse这个极具魅力的开源开发平台。当然,IBM利用Java获得了非常可观的效益,软件+硬件+服务三驾马车滚滚向前,把IBM推向了一个新的高峰。

势不可挡的Java从此站起来了

大家也没有想到,除商业巨头以外,程序员也会对Java国这么热爱,他们基于Java开发了大量的平台、系统、工具。

构建工具:Ant、Maven、Jenkins。

应用服务器:Tomcat、Jetty、JBoss、WebSphere、WebLogic。

Web开发:Spring、Hibernate、MyBatis、Struts。

开发工具:Eclipse、NetBeans、IntelliJ IDEA、JBuilder。

。。。。。。

并且绝大多数是开源的。微软眼睁睁地看着服务器端的市场被Java国占据,岂能善罢甘休?他们赶紧推出.NET来对抗,但Java国已经不在乎了,因为微软的系统都是封闭的,所有的软件都是他们自家的:开发工具是Visual Studio,应用服务器是IIS,数据库是SQL Server。。。。。。只要你用.NET,基本上就会被绑定微软。另外,微软的系统只能运行在Windows服务器上,这个服务器在高端市场的占有率实在是太低了,对Java国来说毫无竞争压力。此情此景好像我们中国,1949年,一个极其特殊的年份,中国人民真正站起来了,一路势如破竹,势不可挡,将蒋介石驱逐至我国台湾,蒋介石即使有心返回大陆,却也无力回天了,越说越激动,我先把激动的心情压住把故事讲完,爱国之情可以体谅的,博友们勿怪。

2005年年底,一个新的王国突然崛起,他们号称开发效率比Java快5~10倍,由此吸引了大批程序员前往加盟,这个新的王国叫做Ruby on Rails,它结合了PHP体系的优点(快速开发)和Java体系的优点(程序规整),特别适合快速开发简单的Web网站。虽然发展很快,但没有对Java国产生实质性的威胁,使用Ruby on Rails搭建大型商业系统的人还很少。除了Ruby on Rails外,还有PHP、Python,都适合快速开发不太复杂的Web系统。但是关键的、复杂的商业系统还是在Java国的统治之下,所以Java国和他们相安无事。

2006年,一支名为Hadoop的军队让Java国入侵了大数据领域。由于使用Java语言,绝大多数程序员在理解了Map/Reduce、分布式文件系统在Hadoop中的实现以后,很快就能编写处理海量数据的程序。

2008年,一个名为Android的系统横空出世,并且随着移动互联网的爆发迅速普及,运行在Android之上的正是Java!

后来,Java国在Google的支持下,以一种意想不到的方式占领了手机端,完成了当年J2ME壮志未酬的事业!

到目前为止,全世界Java程序员数不胜数,Java国也实力强大,是其他国家无法比拟的。

Java国占据了大部分的服务器开发,尤其关键的、复杂的系统,绝大多数的手机端,以及大部分的大数据领域。

一个伟大的帝国崛起了,这个帝国能生存多久?谁会摧毁这个庞大的帝国呢?

我不知道,你呢?

全剧终

终于写完了,能看到这的朋友跟你们说声感谢,此剧情是我参考刘欣老师的《码农翻身》改编而来,如有侵权,请与我联系。写的很痛快,很激动,很爽,尤其是写到Java从此站起来了的时候,突然联想到了我的祖国,我的命名也是由此而来,因为那刻想到的情景是1949年,毛主席向全世界宣布中国人民从此站起来了的时候,我的整个心是沸腾的,激动。不说了,爱国之情人皆有之,我想每个中华儿女都会深有同感的,我代表90后中的一份子向祖国母亲的70华诞送上祝福:

祝您福如东海,寿比南山

致我敬爱的祖国

敬礼

分享的越多,你的价值增值越大,支持我就让更多的人关注我吧

*****************************************************************************************************

我的博客园地址:https://www.cnblogs.com/zyx110/

【原创声明】此篇为作者原创,未经本人同意不得转载,经本人同意转载请说明出处。

我不能保证我所说的都是对的,但我能保证每一篇都是用心去写的,我始终认同“分享的越多,你的价值增值越大”,欢迎大家关注我的技术分享“Java匹马行天下”和学习心得分享“匹马行天下”,在分享中进步,越努力越幸运,人生赢在转折处,改变从现在开始!

支持我的朋友们记得点波推荐哦,您的肯定就是我前进的动力。

Java匹马行天下之Java帝国的崛起(大结局)的更多相关文章

  1. Java匹马行天下之 Java国出了个Java——举国欢庆

    Java帝国的崛起 前言: 看庭前花开花落,宠辱不惊, 望天上云卷云舒,去留无意. 闹心的事儿,选择释怀: 纠缠的人儿,试着放下, 生活其实很美. 心若向阳,就无惧悲伤. 愿你明朗坦荡纵情豁达,有得有 ...

  2. Java匹马行天下之教你用学汉语式方法学编程语言

    Java匹马行天下之教你用学汉语式方法学编程语言 前言: 前段时间接连更新了带小白从入门到了解的几篇博客: <Java匹马行天下之编程常识知多少> <Java匹马行天下之走进编程的殿 ...

  3. Java匹马行天下之新手学习目录

    Java匹马行天下之新手学习目录 学习路线 [Java匹马行天下——Java学习路线] [Java匹马行天下——开篇学习计划] 基础篇 [Java匹马行天下之学编程的起点——编程常识知多少] [Jav ...

  4. Java匹马行天下之C国程序员的秃头原因

    Java帝国的崛起 前言: 分享技术之前先请允许我分享一下黄永玉老先生说过的话:“明确的爱,直接的厌恶,真诚的喜欢.站在太阳下的坦荡,大声无愧地称赞自己.” <编程常识知多少> <走 ...

  5. Java匹马行天下——开篇

    个人感言: 匹马行天下是我高中时候看过一部叫<九鼎记>的小说中的其中一个大章节标题,在整个这一章中,讲的是是主人公滕青山历经艰险,又心如磐石,一心修行,最后巅峰归来的故事.现在回想,依旧心 ...

  6. Java匹马行天下之JavaWeb核心技术——JSP

    JSP动态网页技术 一.JavaWeb简介 一.什么是JavaWeb? JavaWeb是用Java技术来解决相关web互联网领域的技术总称. 需要在特定的web服务器上运行,分为web服务器和web客 ...

  7. Java匹马行天下之JavaWeb核心技术——JSP(续一)

      十二.JSP表单处理 我们在浏览网页的时候,经常需要向服务器提交信息,并让后台程序处理.浏览器中使用 GET 和 POST 方法向服务器提交数据. GET 方法 GET方法将请求的编码信息添加在网 ...

  8. Java匹马行天下之J2EE框架开发——Spring—>Spring框架知多少

    ————也许我注定成不了一个伟大的人,但是至少我可以做一个很棒的自己.我想我现在应该做的不是瞻前顾后,而是活在当下,正确认知自己,做好自己现在的工作,努力提升自己的能力,踏踏实实地做一个程序员 一.思 ...

  9. Java匹马行天下之JavaSE核心技术——异常处理

    Java匹马行天下之JavaSE核心技术——异常处理 异常的简介 在Java中,异常就是Java在编译.运行或运行过程中出现的错误. 程序错误分为三种:编译错误.运行时错误和逻辑错误 编译错误是因为程 ...

随机推荐

  1. 常用Http status code 如何记

    一直记不住http常用的status code,最近思考可以这样想.http无非就是客户端和服务端之间请求嘛.结果么要么成功,要么失败. 成功了,可以提示信息 -- Informational 1xx ...

  2. python 3.7.4下载与安装的问题

    发病时间:2019 年 8 月12 日 周一 1.操作系统环境: Win10 64位 2.pyhon版本3.7.4 python官网地址:www.python.org 本机下载的文件名为:python ...

  3. ssh三大框架的认识

    一.SSH三大框架的概述 ssh为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架.  集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层 ...

  4. ObjectMapper2

    ObjectMapper mapper = new ObjectMapper();                try {                    user = mapper.read ...

  5. codeforces Round #389(Div.2)C Santa Claus and Robot(思维题)

    题目链接:http://codeforces.com/contest/752/problem/C 题意:给出一系列机器人的行动方向(机器人会走任意一条最短路径),问最少标记几个点能让机器人按这个 路径 ...

  6. codeforces 264 B. Good Sequences(dp+数学的一点思想)

    题目链接:http://codeforces.com/problemset/problem/264/B 题意:给出一个严格递增的一串数字,求最长的相邻两个数的gcd不为1的序列长度 其实这题可以考虑一 ...

  7. There is No Alternative CSU - 2097 最小生成树

    Description ICPC (Isles of Coral Park City) consist of several beautiful islands. The citizens reque ...

  8. 深入分析Mybatis 使用useGeneratedKeys获取自增主键

    摘要 我们经常使用useGenerateKeys来返回自增主键,避免多一次查询.也会经常使用on duplicate key update,来进行insertOrUpdate,来避免先query 在i ...

  9. js中的循环方式及各种遍历的方法

    for循环  1.for有三个表达式:①声明循环变量:②判断循环条件:③更新循环变量:三个表达式之间,用;分割, for循环三个表达式都可以省略,但是两个“;”缺一 不可. 2.for循环的执行特点: ...

  10. 漫谈JavaScript中的提升机制(Hoisting)

    前言 刚接触到JavaScript的时候,便知道JavaScript是按顺序执行的,是如浏览器的解析DOM树一样的流程,解析DOM结构的时候,如果遇到JS脚本或者外联脚本便会停止解析,继续下载脚本之后 ...