学习java编程的八大优势

开发 后端
不久前,Google高管炮轰Java和C++过于复杂,不禁要抛出过这样的疑问——“我们真的能没有Java吗?”这是一个值得我们思考的问题。听到了过多Java不好的地方,但是Java在近20年里何以独步天下呢?且看Java的8大技术优势!

  Java的八大技术优势!

  1.免费!

  Sun(虽然现在已被甲骨文收购但我还是喜欢说Sun)免费提供用来开发Java应用程序的一切,你不必付任何的版税。或许你会将信将疑:资本家搞共产了?实际上,Sun在Java上的收益确实不大,远远比不过垄断Java应用服务器技术的IBM和BEA公司,似乎有替别人做嫁衣之嫌。对此,Sun董事长、总裁兼首席执行官ScottMcNealy是这样解释的:“Sun并没有用Java赚钱,这就像使用英语不用上税一样,Sun并不通过Java本身来盈利,而是把Java应用到了业务中。”原来是放长线钓大鱼!

  与Java本身相比,JavaAPI更是可贵的免费财富。想使用Socket操作网络?API中有;想连接到SQL数据库?API中有;想给应用程序一个漂亮的用户界面?API中有;想要处理数字图形、播放音乐、解析字符串或者创建数字签名?API中全都有。

  最后,Java发展了那么多年,优秀的Java教程、技术网站数不胜数。BruceEckel大师的名作Java编程思想(Thinkinginjava)更是不可不读的佳作,许多狂热爱好者甚至把它当做圣经一样一页一页仔细揣摩。机械工业出版社也有引进台湾技术作家候捷的中译本,可惜不是免费。

  或许你会问,有了那么多优秀的教程,还要你这个Java咖啡馆干什么呢?嗯哼,虽然那些教程和技术文章是如此优秀,但并不适合初学者。Java咖啡馆目的就在于帮助你打好Java技术的基础,掌握Java技术的主要脉络,帮助你迈出进入Java世界的第一步!

  2.跨平台

  “一次编写,随处运行”,Java系统可以运行在不同的操作系统和硬件上。随着Linux的持续增长以及MacOSX完全支持Java技术,跨平台的特性变得越来越有分量。

  由于Java跨平台,JavaAPI自然也是平台统一的。对程序员而言,没有比统一的API函数能够让他们更欣慰的了——已经有了圆形的轮子,何必再从头发明轮子呢?我们拿JavaAPI与C++的类库相比便可以知道它的可贵之处。有Windows编程经验的C++程序员肯定经历过被MFC(MicrosoftFoundationClasses,微软基类库)折磨的日子,学习曲线陡峭,没有若干个月根本无法开始生产,一段时间不接触遗忘率又高。据说,即使在微软公司内部,除了MFC开发小组,谁都不乐意用它。即便你熟悉了MFC,能够顺利开发Windows应用程序,如果你要编写一个Linux应用程序,MFC又派不上用场了,你必须学习Linux下C++开发的一套库函数。还有UNIX、FreeBSD、MacOS……你学得过来吗?反观JavaAPI,操作系统,你爱谁是谁,只要编写一次便可随处运行!

  3.在学术界获得了强有力的支持

  由于免费、跨平台、Java语言本身技术先进,在高校中,Java已经成为许多学科研究、课程和计算的首选语言,用Java做上机作业,一般都是鼓励的。据我所知,北大、清华许多院系的研究生入学考试都可以用Java语言答题。实际上,用Java来完成这些工作,大多数情况下要比用C或其他语言简洁得多,你可以把注意力集中在算法等核心部分,从而获得更高分数。

  掌握Java技术的学生一般有更多的工作机会课余兼职,拿到更高报酬,不但减轻家里的负担,更可以让自己早日进入社会锻炼。所以,如果你还在求学,学习Java,一定没错的。

  4.简单

  与C++等语言相比较,语法上Java是简单的。

  谢天谢地,Java提供了垃圾回收机制。以往C++的开发中,最容易出错误的地方便是内存管理,申请的内存用完以后必须释放,否则可使用的内存资源越来越少,直至耗尽系统资源而造成死机。而Java系统中,你可以任意申请内存,Java系统会在适当的时候自动释放无用的内存资源。这个神奇的机制叫做“垃圾回收”,节约了许多调试错误的时间。

  在Java中,要写出低劣的代码也不是一件容易的事情。一方面,垃圾回收机制堵住了内存泄漏的可能性,另一方面就是异常捕捉机制,它强迫你做最坏的打算。编写程序时,难免会遇到一些意外,比如文件无法打开、网络读取失败等特殊情况。在C++等语言中是依靠返回值来判断的,如果一句句地检查返回值,那实在是太麻烦了。从而,程序员习惯性地忽略返回值的检查,并安慰自己一切都会好起来的。这便埋下了隐患。在Java中,Java的方法可以抛异常,而你必须应答异常,即使你不想进行任何操作。比如编写打开文件的代码,你不得不响应异常以防意外发生,否则程序根本不能够通过编译。未雨绸缪,使得Java系统更稳健。

  5.企业应用的成熟平台

  这是Java技术目前最活跃的两大领域之一。我们在前面Java技术介绍中已经提到了不少,这里仅关注跟我们切身相关的优势。

  Java技术的企业应用旨在提升企业竞争力,所以Java技术受到了企业的欣赏,市场份额是同类技术中最大的。同时,Java开放标准,所以供应商众多。市面上有许多的应用服务器、工具与构件可以选择,从高端的BEAWebLogic、IBMWebSphere等商业软件,到Tomcat、JBoss等开源的免费工具,一应俱全。作为Java技术的初学者,不需要任何花费就能够进行Java企业应用的自我培训,以后若参与Java的商业项目开发,便可以无缝地把软件移植到高端的商业平台上去。反观.Net,想免费自学,不盗版是不可能的啦。

  最后谈谈Java和Web服务。Web服务是软件互操作历史上的里程碑,是技术发展的重要方向,是你绝不能不了解的技术。Sun公司是Java语言的发明者,而作为一个开放的跨平台的技术体系,Java在Web服务的开发方面起着非常重要的作用。Sun被接纳为促进Web服务交互组织WS-I的董事成员后,作为活跃的参与者和业界的领导者,对Web服务互操作性的促进,有着相当重要的意义,也为Java技术的含金量加上了关键的砝码。

  6.无线应用

  这是Java技术目前最活跃的另一个领域,旨在提供更多、更方便的个性化服务的Java手机应用。未来几年内,势必将出现移动通讯运营商和移动设备应用软件的巨大商机和激烈竞争,并且该趋势很可能与电子政务、电子商务等其他发展相互影响。Java在手机市场的专有性和Java本身的开放性和标准性,使得越来越多的企业加入了Java阵营。

  中国也不例外。2003年JamesGosling博士首次来到中国,其中重要的一项工作便是与中国联通结盟。

  黄糖故事

  Java之父——JamesGosling博士

  JamesGosling博士以“Java技术之父”闻名于世。他是Java技术的创始人,作为Sun研究院院士,亲手设计了Java语言,完成了Java技术的原始编译器和虚拟机。在他的带领下,Java现已成为互联网的标准编程模式以及分布式企业级应用的事实标准,其跨平台的技术优势为网络计算带来了划时代的变革。目前,Gosling博士积极致力于软件开发工具的研究,以使软件开发工具的功能更强大,更容易为开发人员所使用,确保应用、服务开发的迅速完成。

  实际上,手机游戏开发也是一项不错的职业与机遇,成功的例子已经不在少数哦。

  7.开放的Java社团——JavaCommunityProcess,JCP

  JCP是一个让Java出名的功臣。JCP创造了一个开放型论坛,让同好在此交换意见,探索、定义新的平台,群策群力。Java欢迎竞争,因为只有这样才能最大限度地提高领域内的技术,这点与对手微软.Net技术大相径庭。在Java的舞台上有很多演员,任何人都可以参与到JCP的过程中去,帮助Sun决定Java的发展和未来,同时也挑战自己的影响力。从而,你可以发现Java世界中新的名词层出不穷,远远走在规范之前。而在微软.Net技术的舞台上,你只能看到一个演员,那就是微软自己。还有现在的Java技术交流论坛,J道等等。。。都是很不错错的开放社区。

  8.开源组织或者非盈利机构的支持

  开源组织是无政府主义的梦想——没有政体,没有所属权,言论与行动自由,仅仅依靠渴望共享与交流的信仰及无私奉献来维系。Java世界中,开源组织与非盈利机构发挥到了极致,许多出色的工具都出自它们之手。比如JUnit、Cactus、Tomcat、Struts、JBoss、Eclipse、ANT、Xerces、Hibernate、Axis、AspectJ等等,许多工具还会出现在我们的咖啡馆中,扮演重要的角色。

  Java世界中,便宜无好货绝对不成立,这些工具拥有足以和商业软件媲美的质量,很多商业IDE还集成了这些工具。对Java程序员而言,生活不单单会变得轻松,更重要的,你能够看到希望,有为大家贡献自己力量的机会!

【编辑推荐】

  1. 必读!Java开发人员的十大戒律
  2. 讨论未来的Java开发者
  3. 高手支招 Java经验分享(一)
  4. 20道Java入门习题
  5. Java程序员必读 编程中的一些共同问题
责任编辑:韩亚珊 来源: 互联网
相关推荐

2009-06-22 14:07:46

JSF优势

2024-03-14 15:11:54

2009-08-31 14:41:07

C#编程入门

2023-11-15 15:45:22

2009-03-19 19:43:36

Windows SerR2微软

2022-11-25 14:42:03

SaaS云计算

2023-10-17 15:29:44

2022-04-25 13:11:14

Python编程技巧

2014-01-17 14:15:13

2011-06-09 10:14:47

2024-02-27 07:12:12

编程语言TS

2009-06-06 19:32:49

2011-07-11 14:01:12

JAVA

2011-04-29 09:15:16

Servlet

2024-04-24 09:52:19

云技能云迁移云计算

2023-12-27 11:45:09

2012-05-10 16:45:54

linux系统

2023-02-10 14:49:32

人工智能机器学习

2022-01-05 09:26:56

IT灾难IT故障

2014-07-15 11:25:18

点赞
收藏

51CTO技术栈公众号