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开发人员,总是需要面临这门不断成熟.高速改进中的语言.开发人员 ...
随机推荐
- git 使用入门
参考教程: 廖雪峰的官方网站 MY UBUNTU 安装: sudo apt-get install git GIT 理解: 选定的目录为git的工作区.该目录下的任何改动,git都会记录为工作区的修改 ...
- java时间类简单总结
java时间类(Data类) 1.Data类(没有考虑到国际化,好多方法已过时java.util.Data包中) 父类(是类不是接口含有直接子类3个): 日期格式为:年月日时分秒(不包含毫秒部分) ...
- Mongodb集群搭建过程及常见错误
Replica Sets MongoDB 支持在多个机器中通过异步复制达到故障转移和实现冗余.多机器中同一时刻只 有一台是用于写操作.正是由于这个情况,为 MongoDB 提供了数据一致性的保障.担当 ...
- 欧冠杯:葡萄牙VS法国——葡萄牙首次夺冠!
北京时间7月11日凌晨3点,2016欧洲杯决赛,葡萄牙在法兰西大球场1-0击败东道主法国,历史上首次夺冠.C罗伤退落泪,替补出场的埃德尔在加时赛第109分钟完成绝杀. 昨晚上本来准备熬夜看球赛的!而且 ...
- tp中session用来做权限方法 (缓解mysql压力)
http://www.thinkphp.cn/code/2617.html
- Swift 3 中的访问控制 open public internal fileprivate private
Swift 3必看:新的访问控制fileprivate和open http://www.jianshu.com/p/604305a61e57 浅谈 Swift 3 中的访问控制 https://mai ...
- JS中Array详细用法
1.数组的创建 var name= new Array(); //创建一个数组 name[0]="zhangsan"; //给数组赋值 name[1]="lisi&q ...
- MySQL For Windows Zip解压版安装
前言 Windows 下 MySQL 有msi和zip解压安装版两种,而zip版只需解压并做简单配置后就能使用,我个人比较喜欢这种方式. 注意我们这里说的MySQL是指MySQL服务器,有很多初学的同 ...
- 浅谈 JS 创建对象的 8 种模式
1.Object 模式 var o1 = {};//字面量的表现形式 var o2 = new Object; var o3 = new Object(); var o4 = new Object(n ...
- SDH误码仪MP1570A的自动化
MP1570A是日本安立公司的用于SDH测试的误码仪. 1.MP1570A的自动化测试场景和原理 任意测试PC--(telnet)-->测试PC(Tcl Interrupt)-->SIG_ ...