英文原文:Where does Java used in Real World?
如果你是一个起步者或者只是刚刚开始学习 Java,你或许会疑虑,Java 到底是在哪里被运用的呢?除了 Minecraft 这款游戏以外,你没有见过用 Java 编写的游戏吧?桌面工具 Adobe Acrobat、微软的 Office 办公软件,他们都不是用 Java 编写,以至于连我们电脑所应用的操作系统(Linux 和 Windows)都不是,那么人们如何运用 Java 的呢?现实世界中到底有没有运用 Java 的应用呢?这个问题所有的程序员都会在初学 Java 或者在为了毕业必须掌握一门编程语言而开始学习之后时产生这个疑问。
当你在安装 Java 在你的桌面时会得到答案,或者 Oracle 会告诉你超过了 30 亿的设备正在运行着 Java,这难道不是一个庞大的数字吗?大多数大公司都以不同的方式运用着 Java。许多服务器程序都是拿 Java 来编写以处理每天超过数以千万的数据,网络上的交易系统也是拿 Java 编写例如 LMAX 交易平台系统,其覆盖内部路径的阻断式的内部通信线程,Disruptor。这篇文章里,我们会看到许多跟贴切的例子,哪些项目是在 Java 的基础上完成的,哪些领域和部门在运用 Java,如何正确的在现实世界中运用 Java。
现实世界中的 Java 程序
其实现实生活中有很多地方应用到了 Java,从电子商务网站到 Android 应用,从科学应用到金融应用比如电子交易系统,从游戏(Minecraft)到桌面应用好比 Eclipse,NetBeans 以及 IntelliJ,从开源的文档到 J2ME 应用。下面来详细的介绍这些。
1. Android 应用
如果你还在寻找 Java 在哪运用,你不用东奔西走的寻找,你的身边就是。打开的 Android 手机,随便打开一个 App 应用,他们就是完全的用 Java 语言,从 Google 上搜索 Android 的 API 文档,你就会发现它和 Java 的 JDK 文档惊人的相似。从两年前的 Android 刚刚起步,到今天许多的 Android 应用都是 Java 程序员开发者开发。虽然 Android 运用了不同的 JVM 以及不同的封装方式(这可以参考原先的文章 how Android app works ),但是代码还是用 Java 语言所编写。
2. 在金融业应用的服务器程序
Java 在金融服务业的应用非常广泛,许多跨国投资银行例如:Goldman Sachs(高盛投资),Citigroup(花旗集团),Barclays(巴克莱银行),Standard Charted(标准渣打银行)以及其他银行,都用 Java 来编写前台和后台的电子交易系统,结算和确认系统,数据处理项目以及其他项目。大多数情况下,Java 被用在服务器端开发,但多数没有任何前端,它们通常是从一个服务器(上一级)接收数据,处理后发向另一个处理系统(下一级处理)。Java Swing 技术旨在开发可视化界面客户端供交易者使用,但是随着近几年 C# 的崛起使程序员在客户端开发时舍弃了繁琐的代码,C# 正慢慢取代 Swing 成为可视化开发的主流。
3. 网站
同样,Java 在电子商务领域以及网站开发领域占据这大部分席位。你可以运用许多不同的框架来创建 web 项目,SpringMVC,Struts2.0 以及 frameworks。即使是简单的 servlet,jsp 和以 struts 为基础的网站在政府项目中也是很受欢迎的。例如医疗救护,保险,教育,国防以及其他的不同部门网站都是以 Java 为基础来开发的。
4. 软件工具
许多常用的软件和开发工具都是运用 Java 来编写和开发的。比如 Eclipse,IneteliJIdea 和 Netbans IDE。我认为他们去都是用 Java 来编写的。就如上面所说,Swing 曾经在可视化桌面客户端开发非常流行,它们大多数应用与金融服务领域以及投资银行,JavaFx 虽说已经得到流行,但是依然无法取代 Swing。现在 C# 已经几乎取代了 Swing 在金融开发领域的地位。
5. 交易系统
第三方交易系统,现已是金融服务产业的一个很大的部分,它们同样也是 Java 编写。例如受欢迎的交易平台 Murex ,它也是 Java 编写,并与许多的银行前台所连接,提供服务。
6. J2ME 系统
随着近几年 IOS 和 Android 的出现,几乎占据了 J2ME 市场,但仍然有低端诺基亚、三星手机使用 J2ME。这个时代的大多数手机游戏,手机应用都采用 J2ME 的一部分 MIDP 和 CLDC 编写,以适应 Android 系统。但是 J2ME 依然在蓝光,磁卡,机顶盒这些产品中流行。通信应用之所以这么火是因为 Nokia 的手机依旧支持 J2ME。
7. 嵌入式领域
Java 在嵌入式领域发展空间很大。在这个平台上,你只需 130KB 就能够使用 Java 技术(在智能卡或者传感器上)。最初,Java 被设计用来在嵌入书设备上工作。事实上,这只是其中的一个领域,这只是当初的“一次写入,随便畅游”的项目,现在看起来是这样了。
8. 大数据技术
Hadoop 以及其他大数据处理技术都是用 Java 或者其他,例如 Apache 的基于 Java 的 HBase 和 Accumulo 以及 ElasticSearchas。但是 Java 在此领域并未占太大空间,如 MongoDB 就是在 C++ 技术基础上编写的。总的来说,只要 Hadoop 和 ElasticSearchas 能够成长壮大,Java 依旧还有潜力去在这个市场占据一部分。
9. 高频交易的空间
Java 平台大幅度提高了这个平台的特性和即使编译,他同时也能够像 C++ 一样传递数据。正是由于这个原因,Java 成为的程序员编写交易平台的语言,因为虽然性能不比母语,但你可以避开它的安全性,可移植性和可维护性,以更快的速度运行,一个没有经验的 C++ 程序员会使应用程序变的更加缓慢和不可靠。
10. 科学应用
今天,Java 依然是在科学应用中最好选择,包括自然语言处理。最主要的原因是因为 Java 比 C++ 或者其他语言相对其安全性、便携性、可维护性以及其他高级语言的并发性更好。
1990 年,Java 因为其 Applet 在 Internet 上相当庞大,但是随着这几年的下来,Applet 失去了其光环,最主要原因是因为各种各样的安全问题在 Applet 上出现。今天我们电脑上已经不存在桌面 Java 和 Applet。但 Java 任然是默认的软件行业的应用程序开发语言,在金融服务行业的大量使用,投资银行和电子商务应用的空间,任何一个学习 Java 的学者都有着光明的未来。Java 8 只是加强了信念,Java 将持续多年来控制软件的发展空间。