长沙北大青鸟作者:科泰校区
Java到底有没有现实世界的应用?好吧,其实并不是只有你一个人对这个问题感到困惑。很多程序员在开始Java之前或者在毕业时选择Java作为编程语言时也问过相同的问题。顺便说一下,你可以通过在你计算机上安装Java获得Java在哪些地方使用的相关线索。Oracle声称超三十亿的设备上运行着Java,那是一个巨大的数字,不是吗?大多数公司用一种或者其他方式使用Java。很多服务器端使用Java来处理每天数十百万的请求,高频率的交易应用同样也使用Java,例如LMAX交易程序,这套程序基于他们开创性的线程间通讯库——Disruptor。在这篇文章中,我们将会看到一些更精确的例子。什么种类的项目使用Java开发?在哪些领域内Java是占统治地位的?现实生活中Java到底用在什么地方?
现实生活中的Java应用
在现实生活中,很多地方都用到了Java,从商业上的电子商务网站到安卓App,从科学应用到经济应用,如电子交易系统,从游戏如《我的世界》到桌面应用,如Eclipse、Netbeans、Interllij,从开源类库到J2ME应用。让我们更详细地看一下它们。
1)安卓应用
如果你想弄清楚Java用在什么地方,你离这个目标不是太远。打开你的安卓手机和任何一款App,它们是使用Java语言、基于Google Android API(和JDK类似)开发的。数年的安卓支持已经有了很大提高,并且很多Java程序员已经成为了安卓app开发者。顺便提一下,像我们之前在how Android app works这篇文章中说到的那样,安卓使用不同的java虚拟机、不同的包,但是代码仍是用Java写的。
2)金融业服务器的应用
在金融服务中Java有很重要的应用。很多全球投资银行像高盛、花旗、巴克莱、标准渣打银行等其他银行使用Java来开发前台和后台电子交易系统,提供解决方案和确认系统以及数据处理项目等等。Java大多数用在开发服务器端的应用,几乎不用来开发前端,前端是从一个服务器接受数据,然后处理它并把它发送给其他进程。Java Swing对交易员来说在开发胖客户端的GUI方面还是很受欢迎的,但是现在C#很快地在这个领域获得了市场占有率,Java Swing在这方面被挤压喘不过气来。
3)Java Web应用
Java在电子商务和Web应用领域也是有很多的应用。现在有很多使用Spring MVC、Structs2.0和类似框架开发的RESTful风格的服务。甚至件一个简单的依赖Servlet、JSP和Structs开发的web应用在各种各样的政府项目中很受欢迎。政府的很多部门如卫生局、保险部门、国防部等部门都有他们使用Java开发的web应用。
4)软件工具
很多有用的软件和开发工具是用Java开发的,例如Eclipse、InetelliJ、Netbeans IDE。我认为大多数使用的桌面应用也是用Java开发的。所以有一段时间,Swing在开发胖客户端方面非常流行,尤其是在金融行业和投资银行。现在,Java FX正逐渐受到欢迎,但是仍不能成为Swing的替代品,而C#在金融领域内已经几乎代替了Swing。
5)交易应用
第三方应用交易应用,作为更大的金融服务业的一部分也使用Java开发。流行的交易应用像Murex也是用Java开发的,很多银行都使用它们来连接前后端。
6)J2ME应用
虽然iOS和Android的出现几乎抹杀了J2ME的市场,但是在低终端Nokia和使用J2ME的三星手机方面还是有很大的市场。有一段时间,安卓上可用的游戏、软件几乎全都是用MIDP、CLDC ,他们是J2ME平台的一部分。J2ME在一些产品如蓝光光碟、机顶盒等等。WhatsApp很受欢迎的一个原因是因为对所有Nokia手机的J2ME平台来说是可用的。
7)嵌入式领域
在嵌入式领域,Java也是有很大应用的。它展示了平台是多么的强大,你仅需130Kb就能使用Java技术(在智能卡或者传感器上)。起初,Java是为嵌入式设备而设计的。实际上,这是Java最初“一次编写,到处运行”初衷的一个部分,现在看起来获得了成功。
8)大数据技术
Hadoop和其他大数据技术以这样或那样的方式使用着Java,例如Apache依赖Java的HBse和Accumulo(开源)以及ElasticSearch。但是Java在该领域并不占统治地位,因为有其他技术如MongoDB是用C++开发的。如果Hadoop或者ElasticSearch发展壮大的话,Java在这个发展的领域有可能获得主要的占有率
9)高频率的交易领域
Java平台在现代JIT技术的帮助下,它的性能特性已经有了很大提升,传送性能已经到了C++水平。由于这个原因,Java在开发高性能系统方面还是很受欢迎的,因为性能与机器语言相比稍差一些,但是你可以安全地折衷——轻便、可维护带来更快地速度。对一个缺乏经验的C++程序员来说,只能使应用变得更慢和不可靠。
10)科学应用
现在,对于科学应用来说Java经常作为一个默认的选择,包括自然语言处理。这种现象的主要原因是Java更安全、轻便、易维护,并且与C++和其他语言相比有更好的高级并发工具。
在九十年代,Java由于Applet在因特网领域占有重要地位,但是几年后,由于Applet沙箱模式的各种安全问题,Applet失去了风头。现在,桌面Java和Applet几乎灭亡。Java作为软件开发公司默认的开发语言,在金融服务行业、投资银行和电子商务web应用领域获得了很大应用,任何学习Java的人员都会为自己赢得光明的未来。Java 8更加强了一个信念——在未来的几年,Java在软件开发领域继续占有重要地位
如果你想弄清楚Java用在什么地方,你离这个目标不是太远。打开你的安卓手机和任何一款App,它们是使用Java语言、基于Google Android API(和JDK类似)开发的。数年的安卓支持已经有了很大提高,并且很多Java程序员已经成为了安卓app开发者。顺便提一下,像我们之前在how Android app works这篇文章中说到的那样,安卓使用不同的java虚拟机、不同的包,但是代码仍是用Java写的。