2.1 Java帝国的诞生

二、Java入门

2.1 Java帝国的诞生

聊到Java帝国的诞生,我们就不得不提我们C语言的帝国,1972年C语言诞生,而我们的Java是在1995年才诞生。1972年随着C语言的诞生和Unix系统的问世,C语言帝国就迅速建立起了统治,从北美到欧洲,从欧洲到亚洲,所有的程序员都臣服于C语言的脚下,C语言因其具有汇编语言的特点因此它的优点在于贴近硬件,运行极快,效率极高。因为这一优点很多程序员早期利用C语言开发了很多系统级的软件,操作系统、编译器、数据库、网络系统等,这些都使用C语言开发的。C语言固然好但是他给程序员安上了两个沉重的枷锁,一个是指针还有一个叫做内存管理,虽然指针无比强大可以直接操作内存,但是C语言却没有给他们一个工具去做一些越界的检查导致很多新手程序员容易犯错,至于内存管理C语言更是放任管理,自己分配的空间要自己去释放,更要命的是这些问题有些编译期间是发现不了的,只有在运行程序的时候才会突然的暴露,常常让一些程序员手忙脚乱,昏天暗地的去调试,他们大量的时间和宝贵的经历都浪费在了小心翼翼的去处理指针和内存分配上,如此以来所有的程序员都被这两个东西搞的焦头烂额,开始的时候C语言告诉所有人他们是具有可移植性的,我们在一个机器上写的代码,在另外一个机器上只要编译就可以了,而实际上并非如此,他要求所有人尽可能去使用标准的C的函数库,针对不同的平台,每个平台都要去写一遍,有一个小小的错误都会导致编译失败,这样以来C语言固然效率很高,但像这种暴政所有人并不是很喜欢。

于是在1982年C++语言就诞生了,添加了一些面向对象的功能,它是兼容C的,一些静态类型的检查,性能比较好,但是这门语言比起C语言更加复杂,复杂到很多人都没有办法完全去掌握这门语言,很多复杂特性让人至今放弃了学习,但C++在图形领域和游戏领域取得了成功,但是在这里不推荐大家一上手就学习C++,如果想要去了解计算机相关的底层的东西,因为学习C++会学到很多计算机底层的知识,要去操作指针跟单内存这是一件比较麻烦的事情。

C语言跟C++既然有他不好的方面,正如上面所说的所有的语言都是一部山寨创新史,所以就有了一拨人来反抗这个强大的帝国,于是就有一个人偷偷带了一拨人想要建立一个清新自由的领地,为了让更多的程序员加入他们,他们决定创总一门新的语言,这个语言应该有下面的特性:

  • 语法有点像C语言,这样大家就比较容易接受
  • 没有指针
  • 没有内存管理
  • 真正的可移植性,编写一次,到处运行
  • 面向对象
  • 类型安全
  • 高质量的类库,随着语言发型就直接发送给大家

最开始时候他们想把这个语言命名为C+±-,就是在C++之上进行了优化,去掉了一些复杂的东西,后来发现这个设计理念不行偏差的太严重,所以他们就决定重起炉灶,自己重新定义了一门语言,他们最开始看到门口的一棵橡树准备把语言的名字命名为OAK,但是发布的时候发现这个名字已经被人使用了,最后他们讨论了许久最后把这门语言的名字命名为Java,为了实现真正的跨平台,他们在每个操作系统之上又增加了一个抽象层,叫做Java的虚拟机统称为JVM,所有的平台只要安装了JVM,就可以运行Java的程序了,这样就实现了真正的可移植性,为了吸引更多人的加入,他们决定搞一个演示,向大家展示一下Java的能力,刚刚出世的Java还没有完善,于是1995年他们把眼光盯上了刚刚兴起的互联网时代,所有的网页刚刚出生,那个时候的网页及其丑陋,缺乏互动性,于是他们在浏览器上弄了一个小插件把Java的运行环境放了上去,在上面开发了一个图形界面的程序称作Applet,早年的时候这都是要学习的,现在慢慢的基本上都被淘汰了,现在比较流行的是JS,但是在1995年通过Applet让所有看到它的程序员都眼前一亮,他让之前简单粗暴的网页看起来美轮美奂,震撼人心,于是乎Java就这样活了起来。通过Applet让无数程序员看到了Java这个语言,了解了这门语言的特性后,许多无法忍受C语言暴政的程序员很快就加入了他们,于是Java的领地就开始扩大了,就连C语言领域的商业巨头也纷纷来合作,其中就包括oracle,Microsoft这样的大公司,微软的比尔盖茨说Java是迄今为止设计的最好的语言。但是比尔盖茨就比较的不地道,它买了Java的许可证之后,它在自家的浏览器上也支持了Applet,但是他却偷偷的想去修改一下Java,想把Java绑死在他们的Windows上,那样的话Java就会变得不可移植,这是他们难以忍受的,于是Java跟微软就开启了一场战争,逼着微软退出了Java领域,于是微软就开发了.NET,当然这都是后话了,于是从1995年到1997年Java不断地开疆拓土,用Java的程序员达到了几十万这已经是一个不可忽视的力量,但是慢慢的大家发现Java除了Applet之外似乎干不了其他事情,于是C语言的人就开始嘲笑Java说Java就像是一个玩具只能在网页上弄一弄东西,于是98年,Java决定派出三支部队向外扩张。

  1. Java 2标准版(J2SE):去占领桌面
  2. Java 2移动版(J2ME):去占领手机
  3. Java 2企业版(J2EE):去占领服务器

但是很快两只大军很快就败下阵来,首先J2SE的首领就发现开发桌面应用程序的程序员根本接受不了Java,虽然Java可以做开发界面但是开发出来的界面非常的难看,和原生的桌面差距比较大,尤其是为了运行程序还要安装一个虚拟机大家都接受不了,当然J2ME也是如此不受待见,原因可能是移动互联网还没有兴起,但是J2EE赶上了最好的时候,互联网发展了,大家忽然发现Java简直就是为服务器端程序所发明的,它不仅强大、健壮、安全、简单而且跨平台,在J2EE的指导下发现Java特别适合一些团队开发一些复杂的大型项目,于是他们授权BEA公司第一个使用了J2EE的许可证,这个公司推出了一个weblogic的产品,它凭借他的集群功能第一次展示了复杂应用的扩展性和高可用性,这里涉及到一个“三高”即高可用、高性能、高并发,这个被称为中间件的产品把程序员从事务管理、安全管理、权限管理等方面解放出来了,让他们能够专注于业务去开发,这立刻捕获了大量程序员的心,很快Java程序员就达到了数百万之众,榜样的力量是无穷的于是其他商业巨头纷纷入场,尤其是IBM,它在Java上疯狂投入,它不仅开发了自己的应用服务器叫做websphere还推出了一个Eclipse这样一个极具魅力的开发平台,eclipse是早期一个非常重要的开发平台,IBM利用Java获得了可观的收益,不仅是软件还有硬件、服务器,三项业务把IBM推向了一个新的高峰,所有人都没有想到除了商业巨头外程序员也对Java这么的热爱,他们基于Java开发了非常多的平台和工具如

  • 构建工具:Ant、Maven、Jekins
  • 应用服务器:Tomcat、Jetty,Jboss、Websphere、weblogic
  • web开发:Struts、Spring、Hibernate、myBatis,所有的这些框架程序员可以专注于代码可以不用理会复杂的事务
  • 开发工具:Eclipse、Netbean、intellij idea、jbuilder

以上的这些工具大部分都是开源的,微软就只能眼睁睁的看着服务器端的市场被Java王国占领,于是微软公司推出了.NET这个产品来对抗Java,但此时Java已经不在乎了,因为微软的系统是封闭的所有的软件都是自家的,开发工具是visualstudio,应用服务器是他们的iis,数据库是SqlServer,只要你用了.NET就几乎绑定上了微软,而且微软的一些系统只能运行在Windows的服务器上,这个服务器在高端的市场占有率实在是太低了,Java在发展的图中也遇到了一些新势力的打击,比如在2005年底一个新的事物突然崛起了,他们号称开发效率比Java快5到10倍,他们称之为Ruby,它结合了PHP的一些优点,和Java的优点,特别适合开发一些简单的web网站,虽然发展很快,但他根本对Java没有产生一些实质性的威胁,因为使用Ruby这个语言搭建大型商业系统非常的少,除了Ruby之外还有PHP,Python这些都是适合开发不太复杂的web系统的,但是一些大型的web系统都是非常复杂的都是用Java来做的,所以这些语言并没有对Java产生实质性的冲击力。

2006年一只叫Hadoop的军队让Java入侵了大数据的领域,因为使用Java很多程序员在理解了分布式文件管理系统之后很快就能编写一些处理海量数据的程序,Java就这样占领了大数据的领域。

2008年一个叫做Android的系统横空出世,随着移动互联网的爆发以及迅速的普及,Android火了,而运行在Android之上的正是Java,Java王国在goole的帮助下意想不到的占领了手机端,完成了J2ME没有完成的事业,迄今为止全世界应该有几千万的程序员都会Java。

到目前为止Java的实力之强大是其他语言无法比拟的。从2008年之后Java就一发不可收拾了,Java占领了大部分服务器端的开发,尤其是一些关键的复杂的系统,绝大多数手机端以及大部分的大数据领域都是使用的Java,于是乎一个伟大的帝国就这样诞生了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值