10个使用Java最广泛的现实领域

如果你是一个初学者,刚刚开始学习Java,你可能会想Java有什么用呢?除了Minecraft貌似也看不到其他用Java写的游戏,像Adobe Acrobat和Microsoft Office等桌面工具也不是用Java写的,甚至Linux和Windows操作系统也和Java无关,那么到底什么时候才需要用Java呢?

毋需纠结,很多程序员都有这个困惑,或在学Java之前或已经到了语言学习的一定程度。顺便说一句,我们可以通过在桌面安装Java来得到有关Java使用的线索,因为数据库会告诉你超过30亿的设备上在运行Java,有没有吓一跳?

大多数的公司或多或少都在使用Java。许多由Java所编写的服务器端应用程序每天都要处理数以千万计的请求。高频率的交易app也是用Java写的,如LMAX的交易应用程序,建立了一个开创性的线程间通信库,Disruptor。

本文将重点介绍各种用Java写的项目,以及Java在现实世界中到底起了什么作用?

真实世界中的Java应用程序

事实上Java在很多方面都有所涉及,从商业性质的电子商务网站到Android应用,从有关学术上的应用程序到财务应用,如电子交易系统,从类似于Minecraft的游戏到桌面应用程序如Eclipse、Netbeans和IntelliJ,从开源库到J2ME应用,等等等等,举不胜举。下面我将具体地讲一下。

1)Android应用

如果你想知道哪里可以使用Java,那么远在天边近在眼前。打开你的安卓手机,它里面几乎所有的应用都是用Java语言写的,其谷歌Android API就像JDK一样。早在几年前Android就已经开始风靡全球,现在有很多的Java程序员就是安卓应用开发人员。顺便说一下,Android使用的是不同的JVM和不同的包,但是其代码依然是用Java写的。

2)金融服务行业的服务器应用程序

在金融服务行业Java是非常强大的。很多全球性的投资银行如高盛、花旗集团、巴克莱银行、渣打银行等等都是使用Java来编写前端和后端的电子交易系统、结算和确认系统、数据处理系统及其他。Java还被广泛应用于写服务器端应用程序,这些服务器端应用大多没有前端,直接从上游服务器接受数据,经过处理之后再发送给下游进程。Java Swing曾用于为交易商创建胖客户端的图形用户界面,但是现在C#迅速占领了Swing在各方面的份额,Swing毫无招架之力。

3)Java Web应用程序

Java在电子商务和Web应用程序上也是个大头。通过Spring MVC、Struts 2.0和类似框架,你可以创建大量的RESTfull服务。即使是简单的基于web应用的ervlet、JSP和Struts,在各种政府项目中也非常受欢迎。许多政府、医疗、保险、教育、国防以及其他部门都有他们自己用Java写的Web应用程序。

4)软件工具

很多用处非常广泛的软件和开发工具都是用Java语言开发的,如Eclipse、InetelliJ Idea和Netbans IDE。估计这些可能也是最为常用的用Java写的桌面应用了。还有Swing在写胖客户端,特别是在金融服务业和投资银行上曾经也是广为使用。现在的话,Java FX越来越受欢迎,但是依然不能代替Swing,而C#已经几乎完全取代了Swing曾经在金融领域的地位。

5)交易应用程序

第三方交易应用程序,在金融服务行业非常庞大的一部分,其实也是用Java写的。Murex,广泛使用于许多银行间的连接,就是用Java写的。

6)J2ME应用

虽然iOS和Android的出现差点吞并了J2ME的市场,但是还是有大量的低端诺基亚和三星手机,在使用着J2ME。以前,几乎所有Android中的游戏、应用程序都是用MIDP、CLDC以及部分J2ME平台写入的。现在我们依然能从很多产品,如蓝光、信用卡、机顶盒的上面看到J2ME的身影。Whats App之所以如此受欢迎的原因之一就是它的J2ME很强。

7)嵌入式空间

Java在嵌入式领域也占据着很大一部分份额。因为在这些容量有限的平台上我们只需用130 KB就可以使用Java技术(智能卡和传感器)。最初的Java就是专为嵌入式设备而设计出来的。事实上,嵌入式也是Java最初“write once,run anywhere”主旨的一个方面,现在看起来可谓是富有成效。

8)大数据技术

Hadoop和其他大数据技术也或多或少地在使用Java技术,例如Apache的基于Java的HBase和Accumulo(开源),还有ElasticSearch。不过Java在此领域并不算是霸主,还有其他技术例如MongoDB则是用C ++写的。如果Hadoop或者ElasticSearch能够不断壮大的话,Java是非常有潜力吞下这块大饼的。

9)高频交易领域

Java平台改进了很多,不但有与时俱进的JIT编译器,还提供C ++水平的性能。正是由于这个原因,Java在编写高性能系统上也非常受欢迎。哪怕是一个没有经验的C ++程序员,如果对其代码的安全性、便携性和可维护性上不做太多要求,他就能“快速”地写出一个应用程序来。

10)科学应用程序

如今的Java依然成为默认的科学应用程序,包括自然语言处理进程。主要原因是为Java更安全、更轻便、更易于维护,相较于C++和其他任何语言,Java配备了更好的高水平并发性工具。

上世纪90年代,得益于互联网上applet的盛行,Java非常强大。但是近年来,由于各种各样的安全问题,applet渐渐走向了没落。如今桌面Java和applet几乎已经绝迹。而Java则默认成为软件产业钟爱的应用程序开发语言,并且在金融服务行业、投资银行和电子商务网站等多个领域被广泛使用。我可以担保,只要你能学好Java,那工作的“钱”景一定美好。

10个使用Java最广泛的现实领域的更多相关文章

  1. Top 10 Methods for Java Arrays

    作者:X Wang 出处:http://www.programcreek.com/2013/09/top-10-methods-for-java-arrays/ 转载文章,转载请注明作者和出处 The ...

  2. 在 Ubuntu 13.10 中搭建Java开发环境 - 懒人版

    本文记录我在Ubuntu 13.10中搭建Java开发环境. 本文环境: Ubuntu 13.10 x64运行在Win7下的VMware Workstation 10中. 1. 安装JDK与JRE s ...

  3. Yet Another 10 Common Mistakes Java Developers Make When Writing SQL (You Won’t BELIEVE the Last One)--reference

    (Sorry for that click-bait heading. Couldn’t resist ;-) ) We’re on a mission. To teach you SQL. But ...

  4. macOs升级到10.13.1Beta || JAVA升级到最新版之后PhpStorm菜单栏问题

    macOs升级到10.13.1Beta || JAVA升级到最新版之后PhpStorm菜单栏会消失,估计不止出现在PhpStorm,一系列jetbrains的产品可能都会有这个问题,包括eclipis ...

  5. 20172319 2018.10.19《Java程序设计教程》第7周课堂实践(补写博客)

    20172319 2018.10.19 <Java程序设计教程>第7周课堂实践 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...

  6. 20172319 2018.10.12《Java程序设计教程》第6周课堂实践(补写博客)

    20172319 2018.10.12 <Java程序设计教程>第6周课堂测验 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...

  7. 10个用Java谋生非常有趣的方式

    令我惊讶的是,有些人觉得编程并不令人兴奋——只将它当作是一份枯燥的工作.不过,虽然可能的确有很多无聊的编程工作,但这并不意味着你不得不接受这些工作中的一个.程序员有各种各样的机会,运用他们的技能去做一 ...

  8. 【翻译】Java Array的排名前十方法(Top 10 Methods for Java Arrays)

    这里列举了Java Array 的前十的方法.他们在stackoverflow最大投票的问题. The following are top 10 methods for Java Array. The ...

  9. Github最流行的10,000个Java项目使用的类库

    本文由 ImportNew - Andy.Song 翻译自 takipiblog.欢迎加入翻译小组.转载请见文末要求. 前言 作为Java开发人员,总是需要面临这门不断成熟.高速改进中的语言.开发人员 ...

随机推荐

  1. mysqldump的使用

    mysqldump按导入:mysqldump -u用户名 -p密码 -h主机 数据库 < 路径eg:mysql -uroot -p1234 db1 < c:\a.txtmysqldump导 ...

  2. java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

    报这个错是因为加的struts的jar包有问题... 另外,jar包应该放在WEB-INF下的lib文件夹里面,且不必Add to build path,该目录下的jar包会自动引入 使用struts ...

  3. 【ORM】--FluentNHibernate之基本映射详解

           最近在做项目的时候用到了NHibernate,使用它并不困难,但是很麻烦.如果我的数据库有几百张表如果想要一个个的映射岂不是很麻烦,所以这种情况下使用NHibernate就会很笨重,虽然 ...

  4. Take advantage of “Integrated Calling” to know whom suspect talked to

    A new feature in iOS 10 is "Integrated Calling". An integrated call from Chat App like Nav ...

  5. MAXIMO-修改菜单

    MAXIMO菜单修改 模块: select * from MAXMODULES; -- 查询模块 一级菜单(应用程序):  select * from MAXMENU where MENUTYPE=' ...

  6. ActiveMQ安装

    安装环境: 逛网下载最新安装包,ubuntu下解压sudo tar -zxvf xx.tar.启动activeMQ. 报错如下: 原因是没有找到java命令位置,编辑启动配置文件: 再次启动,完成后进 ...

  7. Ubuntu实现wifi热点

    系统:Ubuntu14.04 方法一: 打开网络连接,新建wifi,设置SSID和密码,完成设置后保存,再连接到隐藏的wifi,选择刚建立好的连接即可 优点:简单方便 缺点:建立的是Ad-hoc模式信 ...

  8. 使用VideoToolbox硬编码H.264<转>

    文/落影loyinglin(简书作者)原文链接:http://www.jianshu.com/p/37784e363b8a著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. ======= ...

  9. WeedFS0.6.8-引用库列表

    WeedFS 0.68新增了对cassandra数据库存储的支持及JSON Web Token(JWTs)安全的支持. github.com/gocql/gocql //filer/cassandra ...

  10. Spark学习笔记之SparkRDD

    Spark学习笔记之SparkRDD 一.   基本概念 RDD(resilient distributed datasets)弹性分布式数据集. 来自于两方面 ①   内存集合和外部存储系统 ②   ...