1.免费!
Sun(虽然现在已被甲骨文收购但我还是喜欢说Sun)免费提供用来开发Java应用程序的一切,你不必付任何的版税。或许你会将信将疑:资本 家搞共产了?实际上,Sun在Java上的收益确实不大,远远比不过垄断Java应用服务器技术的IBM和BEA公司,似乎有替别人做嫁衣之嫌。对 此,Sun董事长、总裁兼首席执行官Scott McNealy是这样解释的:“Sun并没有用Java赚钱,这就像使用英语不用上税一样,Sun并不通过Java本身来盈利,而是把Java应用到了业 务中。”原来是放长线钓大鱼!
与Java本身相比,Java API更是可贵的免费财富。想使用Socket操作网络?API中有;想连接到SQL数据库?API中有;想给应用程序一个漂亮的用户界面?API中有;想要处理数字图形、播放音乐、解析字符串或者创建数字签名?API中全都有。
最后,Java发展了那么多年,优秀的Java教程、技术网站数不胜数。Bruce Eckel大师的名作Java编程思想(Thinking in java)更是不可不读的佳作,许多狂热爱好者甚至把它当做圣经一样一页一页仔细揣摩。你可到作者的主页http://www.BruceEckel.com免费下载此书的电子版。机械工业出版社也有引进台湾技术作家候捷的中译本,可惜不是免费。
或许你会问,有了那么多优秀的教程,还要你这个Java咖啡馆干什么呢?嗯哼,虽然那些教程和技术文章是如此优秀,但并不适合初学者。Java咖啡馆目的就在于帮助你打好Java技术的基础,掌握Java技术的主要脉络,帮助你迈出进入Java世界的第一步!
2.跨平台
“一次编写,随处运行”,Java系统可以运行在不同的操作系统和硬件上。随着Linux的持续增长以及Mac OSX完全支持Java技术,跨平台的特性变得越来越有分量。
由于Java跨平台,Java API自然也是平台统一的。对程序员而言,没有比统一的API函数能够让他们更欣慰的了——已经有了圆形的轮子,何必再从头发明轮子呢?我们拿Java API与C++的类库相比便可以知道它的可贵之处。有Windows编程经验的C++程序员肯定经历过被MFC(Microsoft Foundation Classes,微软基类库)折磨的日子,学习曲线陡峭,没有若干个月根本无法开始生产,一段时间不接触遗忘率又高。据说,即使在微软公司内部,除了 MFC开发小组,谁都不乐意用它。即便你熟悉了MFC,能够顺利开发Windows应用程序,如果你要编写一个Linux应用程序,MFC又派不上用场 了,你必须学习Linux下C++开发的一套库函数。还有UNIX、FreeBSD、Mac OS……你学得过来吗?反观Java API,操作系统,你爱谁是谁,只要编写一次便可随处运行!
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开放标准,所以供 应商众多。市面上有许多的应用服务器、工具与构件可以选择,从高端的BEA WebLogic、IBM WebSphere等商业软件,到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年James Gosling博士首次来到中国,其中重要的一项工作便是与中国联通结盟。
黄糖故事
Java之父——James Gosling博士
James Gosling博士以“Java技术之父”闻名于世。他是Java技术的创始人,作为Sun研究院院士,亲手设计了Java语言,完成了Java技术的原 始编译器和虚拟机。在他的带领下,Java现已成为互联网的标准编程模式以及分布式企业级应用的事实标准,其跨平台的技术优势为网络计算带来了划时代的变 革。目前,Gosling博士积极致力于软件开发工具的研究,以使软件开发工具的功能更强大,更容易为开发人员所使用,确保应用、服务开发的迅速完成。
实际上,手机游戏开发也是一项不错的职业与机遇,成功的例子已经不在少数哦。
7.开放的Java社团——Java Community Process,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程序员而言,生活不单单会变得轻松,更重要的,你能够看到希望,有为大家贡献自己力量的机会!