10个使用Java最广泛的现实领域
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最广泛的现实领域的更多相关文章
- Top 10 Methods for Java Arrays
作者:X Wang 出处:http://www.programcreek.com/2013/09/top-10-methods-for-java-arrays/ 转载文章,转载请注明作者和出处 The ...
- 在 Ubuntu 13.10 中搭建Java开发环境 - 懒人版
本文记录我在Ubuntu 13.10中搭建Java开发环境. 本文环境: Ubuntu 13.10 x64运行在Win7下的VMware Workstation 10中. 1. 安装JDK与JRE s ...
- 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 ...
- macOs升级到10.13.1Beta || JAVA升级到最新版之后PhpStorm菜单栏问题
macOs升级到10.13.1Beta || JAVA升级到最新版之后PhpStorm菜单栏会消失,估计不止出现在PhpStorm,一系列jetbrains的产品可能都会有这个问题,包括eclipis ...
- 20172319 2018.10.19《Java程序设计教程》第7周课堂实践(补写博客)
20172319 2018.10.19 <Java程序设计教程>第7周课堂实践 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...
- 20172319 2018.10.12《Java程序设计教程》第6周课堂实践(补写博客)
20172319 2018.10.12 <Java程序设计教程>第6周课堂测验 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...
- 10个用Java谋生非常有趣的方式
令我惊讶的是,有些人觉得编程并不令人兴奋——只将它当作是一份枯燥的工作.不过,虽然可能的确有很多无聊的编程工作,但这并不意味着你不得不接受这些工作中的一个.程序员有各种各样的机会,运用他们的技能去做一 ...
- 【翻译】Java Array的排名前十方法(Top 10 Methods for Java Arrays)
这里列举了Java Array 的前十的方法.他们在stackoverflow最大投票的问题. The following are top 10 methods for Java Array. The ...
- Github最流行的10,000个Java项目使用的类库
本文由 ImportNew - Andy.Song 翻译自 takipiblog.欢迎加入翻译小组.转载请见文末要求. 前言 作为Java开发人员,总是需要面临这门不断成熟.高速改进中的语言.开发人员 ...
随机推荐
- mysql优化笔记
query_cache_size 查询缓存 query_cache_type缓存是否打开 OFF/ON read_buffer_size读缓存SET GLOBAL query_cache_size=1 ...
- Caused by: java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode
进行 spring mvc jpa整合时.Junit方法测试时. 异常: org.springframework.beans.factory.BeanCreationException: Error ...
- zend studio中ctrl+鼠标左键无法转到类或函数定义文件的解决方法
转载自:http://blog.csdn.net/wide288/article/details/21622183 zend studio中ctrl+鼠标左键无法转到类或函数定义文件的解决方法: ze ...
- 随便翻翻qcon 2014
随便翻了翻QCon 2014的ppt,土人看看最新的成果: 基本感受: 1. 高大上公司比如阿里,腾讯啥的已经挺过第一轮,已经重构重构再重构了,整个架构不能说成熟,但是可以说可用了 2. 创业公司或者 ...
- iOS原型模式
原型模式:大部分重复,只有一小部分不同的情况下,为了代码清晰和避免麻烦,用原型模式,会更方便一点 // 学生1 StudentModel *stu1 = [[StudentModel alloc] i ...
- Numpy应用100问
对于从事机器学习的人,python+numpy+scipy+matplotlib是重要的基础:它们基本与matlab相同,而其中最重要的当属numpy:因此,这里列出100个关于numpy函数的问题, ...
- linux使用grep和find查找内容
1,在某个路径下查文件. 在/etc下查找“*.log”的文件 find /etc -name “*.log” 2,扩展,列出某个路径下所有文件,包括子目录. find /etc -name “*” ...
- 《跑跑跑》(五)——添加障碍物,Tiled障碍层的使用
[转]http://blog.csdn.net/u010778159/article/details/44036365 首先利用TiledMap在原来的地图上添加上障碍物,先新建两个图层,分别叫bar ...
- MySQL_采购入库价格与在线售价监控_20161213
c037采购入库价格与在线售价监控 ##c037采购入库价格与在线售价监控 SELECT a.城市,a.产品ID,a.商品名称,a.入库日期,a.入库仓库,a.单价,a.总金额,a.采购人,b.单价 ...
- 打造一个有感觉的vim(四)
今天要介绍的VIM插件的名字叫做surround,这个插件的主要作用是将一个VIM的tex-objects(文本对象)添加或者取消包裹(单引号,双引号,XML标签等等)下载地址如下:https://g ...