以下是 Java 应用程序列表:
- 桌面 GUI 应用程序
- 移动应用
- 企业应用
- 科学应用
- 基于 Web 的应用程序
- 嵌入式系统
- 大数据技术
- 分布式应用程序
- 基于云的应用程序
- Web 服务器和应用程序服务器
- 软件工具
- 游戏应用
1.桌面应用程序
可以使用 Java 轻松开发桌面应用程序。 我们使用 AWT、Swing、JavaFX 等 API 来构建这些应用程序。
AWT (Abstract Windowing Toolkit) 是一个用于在 Java 中开发基于窗口的应用程序的接口。 它“不完全基于 Java”,因为它使用窗口用户界面功能,例如菜单、按钮、列表等。
Swing 是一个 GUI 小部件工具包,它使用 AWT 并提供某些高级组件,如树、表格、滚动窗格、选项卡式面板和列表。 Swing 是“完全基于 Java 的”,并使用 Java 的 Swing 包来开发应用程序。 它响应所有的鼠标点击事件、按键输入等,
JavaFX 是一种用 Java 开发桌面应用程序的现代方式,它是基于图形的,与 AWT 和 Swings 完全不同。
桌面 GUI 应用程序的示例包括 Acrobat Reader、ThinkFree、Media Player、Antiviruses 等。
2.移动应用
移动应用程序是为手机和平板电脑创建的应用程序。 在当今时代,大多数手机和智能设备都具有 Android 操作系统,没有 Java 就无法进行 Android 开发。
Java Micro Edition(Java ME 或 J2ME)是一种流行的跨平台框架,用于构建可在所有功能手机和智能手机上运行的应用程序。此外,Java 与 AndroidStudio 和 Kotlin 兼容。
现在,您一定在想为什么只用于 Android 移动应用程序开发?
原因是 Java 编译器将 Java 类编译成字节码,而这个字节码在 Dalvik 虚拟机 (DVM) 上运行,Dalvik 虚拟机 (DVM) 是 Android 的专用虚拟机 (VM)。
移动应用程序的示例包括照片和视频库应用程序、简单日历、Netflix、Tinder、QRReader、谷歌地球、优步等。
3.企业应用程序
多家公司在使用Java开发的软件上运行。C和C ++语言已过时。Java是通用的,易于实现,因为它不涉及指针的使用。在银行部门,也有Java从前端运行到后端。更高的性能保证Java使得诸如Murex之类的高频交易系统可以使用该语言编写脚本。它也是各种Java应用程序的骨干,这些Java应用程序从前端用户端运行到后端服务器端。
企业应用程序是在企业环境中运行的大型软件系统,以满足组织而非个人用户的需求。Java 成为开发企业应用程序的首选,因为它具有满足相同需求的强大功能。 在当今时代,大多数企业组织都基于 Java 的应用程序,只是因为它是最安全、最强大、最可扩展的语言。
甲骨文公司声称“大约 97% 的企业应用程序使用 Java 来开发大型软件”。 Java EE(Java 企业版)是一种 API,用于提供在企业中开发大规模、多层、可扩展、可靠、分布式和安全的网络应用程序所需的工具。
- Java 满足了这些企业最本质的需求,即安全性,因为 Java 运行在 JVM(Java 虚拟机)内部,它验证来自外部系统的字节码,最终防止安全漏洞。这就是为什么大多数银行应用程序都是在 Java 平台上开发的原因。
- 此外,Java 提高了这些应用程序的性能,因为它具有强大的内存管理功能,可以自动删除未使用的内存。
- Java 应用程序可以轻松地进行扩展,以增加企业应用程序站点上的用户数量。
- Naukri、Jabong、Google、Myntra、Flipkart、Trivago、ibibo、TripAdvisor、Spotify、Uber、TCS、Infosys、HCL、Wipro、Pinterest、eBay 等公司使用 Java。
4.Java的科学应用
科学应用程序是使用数学影响现实世界活动的应用程序。 Java 支持科学应用程序的开发,因为它具有强大的功能。
- Java 成为编写涉及科学计算和数学运算的科学应用程序的最佳选择。它为这些应用程序提供了一个快速、安全和高度便携的环境,这是这些应用程序的基本要求。
- 它具有强大的数学计算能力,能够在不同平台上给出相同的结果,这使得开发人员可以选择 Java 进行科学应用。
- MATLAB(数学实验室)是最流行的科学应用程序之一,它使用 Java 开发前端(交互式用户界面)和后端(系统的核心部分)。
- 科学应用的前端和后端均基于Java。对于前端,Java 提供了 struts、JSP(Java Server Pages)、servlets。对于后端,可以在 servlet 中使用核心 Java。
科学应用的例子是与研究、科学、医学、空间、航空等相关的应用。
5.基于Web的应用程序
Web 应用程序是通过浏览器界面在 Internet 上交付的客户端-服务器程序。
- Java 支持在 servlet、struts、JSP(Java 服务器页面)和 JSF(Java Server Faces)、Spring、Hibernate 和网络服务器(如 Apache Tomcat、Apache HTTP 网络服务器、Resin、adobe)的帮助下开发网络应用程序JRun 等
- 借助这些技术,我们可以开发任何类型的基于 Web 的应用程序。
- Servlet 和 JSP 是帮助开发 Web 应用程序业务逻辑的服务器端组件。 JSP 是 Servlet 的扩展,因为与 servlet 相比,它具有更多功能。
- 电子商务 Web 应用程序还在 Broadleaf 等开源电子商务平台的帮助下使用 Java。
- Java 提供了简单的编码和高安全性,这使得开发大量的健康、社会保障、教育和保险应用程序成为可能。
基于 Web 的应用程序示例包括 irctc.co.in、在线表格、购物车、Gmail、Google Sheets、Google Slides 等等。
6. 嵌入式系统
嵌入式系统,也称为集成系统,是许多小型计算单元的组合,它们组装在一起为较大的系统执行专用功能。嵌入式系统无处不在。我们大多数人在不知情的情况下使用它们。例如,汽车系统、汽车娱乐和多媒体、电子商务、无线通信、移动计算和网络都使用嵌入式系统。
嵌入式系统使用 Java 进行开发。最初,Java 是为开发嵌入式系统而设计的。
- Java 展示了其平台的高效性,只需 130 KB 即可在智能卡或传感器上使用它。
- Java 速度快,这在使用低功耗/低速处理器时很重要,它的健壮性意味着可以安全地处理异常。
- 近 20 年来,我们手机中的 SIM(订户身份模块)卡一直在运行 JVM(Java 卡)的变体。
- BlueRay Disc 播放器、公用事业仪表和电视等其他设备使用 Java 技术。据甲骨文公司称,“100% 的蓝光光盘播放器和 1.25 亿台电视设备使用 Java”。
7. 大数据技术
大数据是对大量、动态、能持续的数据,通过运用新系统、新工具、新模型的挖掘,从而获得具有洞察力和新价值的东西,是基于云计算的数据处理与应用模式,通过数据的集成共享,交叉复用形成的智力资源和知识服务能力。它是世界上最新技术最热门的话题之一。
Java是大数据的未来。今天,许多开发人员正在将他们的职业转向大数据技术。
- 一个名为 Hadoop 的与大数据相关的开源框架是用 Java 编写的。此外,自动垃圾收集和强大的内存管理使JAVA比其他编程语言具有更高的优先级。
- 许多著名的大数据技术如 Apache Hadoop、Apache Spark、Apache Mahout 等都是 Java 的子项目。
- 此外,最强大的编程语言,如纯面向对象语言 Scala(可扩展语言),也是基于 Java 的。 Scala 程序很容易转换成字节码;可以在JVM上运行。
- Hadoop 和其他大数据技术也在以一种或另一种方式使用 Java。例如,Apache’s Java-based HBase and Accumulo (open source), 和 ElasticSearch 等。
8、Java的分布式应用
分布式应用程序是在一个网络内的多台计算机上执行或运行的应用程序或软件。
- 分布式应用程序或系统有许多常见的需求,特别是因为它们运行的平台的分布式和动态特性。 Java 提供了实现这些应用程序的选项。
- RMI(远程过程调用)和 CORBA(通用对象请求代理架构)是开发分布式应用程序的 API。
- Jini(Java 智能网络基础设施)提供了一个基础设施,该设施可用于提供、注册和查找分布式服务。 Jini 的一个重要部分是 JavaSpaces,它支持分布式环境中对象的分发、持久化和迁移。
9.基于云的应用程序
云计算意味着通过互联网按需交付 IT 资源,包括存储、服务器、数据库、网络和软件,采用即用即付定价模式。它以低成本为 IT 基础设施提供了解决方案,因为我们可以将文件保存在远程数据库中并按需检索。毫无疑问,您很好奇 Java 编程是如何融入云计算的。
- Java 长期以来一是为 Web 应用程序结构开发的编程语言,现在由于其分布式特性,它已经成为云应用程序语言。
- Java 为我们提供了一些特性,可以帮助我们构建在 SaaS(软件即服务)、IaaS(基础设施即服务)和 PaaS(平台即服务)开发中使用的应用程序。
- Java 云开发工具有很多。例如,Oracle Java 云服务提供了一个平台来开发和配置 Oracle 服务器。
- Java 可以为公司提供服务,根据他们的需要远程构建他们的应用程序或帮助他们与他人共享数据。
10. Web 服务器和应用服务器
Web 服务器是一种计算机程序,它使用 HTTP(超文本传输协议)和其他协议来存储、处理和响应 WWW(万维网)发出的客户端请求。 Web 服务器是通过运行网站向用户提供网页服务的系统。
应用服务器(或应用服务器)是一种软件框架,该框架用于存储应用程序并处理和组织客户端和后端之间的所有操作。它不仅限于 HTTP,还可以做很多其他的事情。
- Java 生态系统包含多个 Java Web 服务器和应用程序服务器。
- Java 提供的 Web 服务器包括 Apache Tomcat、Simple、Jo!、Rimfaxe Web Server (RWS) Apache HTTP 服务器、Resin、Adobe JRun 和 Project Jigsaw。
- WebLogic、GlassFish、WildFly、WebSphere 和 JBoss EAP 占据了商业应用服务器空间。
11. 软件工具
软件工具是开发人员用来开发、分析、维护、调试或支持其他应用程序和程序的一组计算机程序。许多开发人员使用 Java 编写和开发有用的软件工具。
软件工具的示例有 Eclipse、IntelliJ Idea 和 NetBeans IDE。
12. 游戏应用
Java 被证明是开发二维游戏的最佳平台之一。今天,几乎每个人都有一部装有 Android 游戏的 Android 手机。没有 Java 就无法构建 Android 游戏。
- Java 支持 jMonkeyEngine,它是最强大的开源 3D 引擎,具有设计 3 维游戏的能力。
- Android 游戏使用 Java 作为主要语言,因为 Java 支持专为在 Android 平台上运行而设计的 Dalvik 虚拟机 (DVM)。
13.数字和电子设备
GPIO,SPI或I2C等设 备需要与传感器和执行器进行通信。借助开放源代码库,Java使访问这些接口变得简单。
总结
我们开始知道 Java 是一种“蓝领”语言,涉及软件开发的各个领域。可根据业务需要使用。通过这些应用程序,我们意识到现实世界中对 Java 的需求。
当我们需要开发一个安全且可扩展的应用程序时,我们绝对应该选择使用 Java,因为它具有主要的安全特性。这就是为什么许多需要大量安全问题的银行应用程序最好用 Java 开发的原因。
因此,如果我们的业务规范与其功能相匹配,我们就可以选择这种语言。许多技术和编程语言都在不断发展,但 Java 的流行度仍然不变。
甲骨文:有史以来最伟大的 25 个 Java 应用程序
从太空探索到基因组学,从反向编译器到机器人控制器,Java 都是当今世界的核心。下面将介绍几个从众多 Java 应用程序中脱颖而出的优秀应用。
这份清单没有特定的顺序,也还不够详尽,可能会有遗漏,如果你认为文章中遗漏了哪个重要的Java 应用,可以在文末给我们留言!
最后的边界
1、Maestro 火星探测器控制器。 2004 年,Java 成为首个扩展人类星球影响力的编程语言。那年在三个月的时间里,美国国家航空航天局(NASA)的科学家在位于加利福尼亚州帕萨迪纳的喷气推进实验室(JPL)里,使用了由 JPL 机器人接口实验室建造的基于 Java 的 Maestro Science Activity Planner 来控制“勇气号”火星探测器(Spirit Mars Exploration Rover )。在 JPL 里,Java 试验早在许多年前就开始,当时是为 1995 年的“逗留者”火星车(Mars Sojourner)创建了一个命令和控制系统。 Java 创始人 James Gosling 为 JPL 工作了很长时间,因此他成为了顾问委员会的一名成员。
2、JavaFX 深空轨迹探测器。计划进行一次太空飞行?您可能需要来自 a.i.solutions 的工具,a.i.solutions 是一家美国航空承包商,其产品和工程服务已经被国防公司和民用航天机构使用了 20 多年。
该公司的 JavaFX 深空轨道探测器(JavaFX Deep Space Trajectory Explorer)使轨迹设计人员可以计算深空三体系统的路径和轨道。该应用程序可以为任何行星 — 卫星系统或小行星生成多维视图和模型,并能在密集的视觉搜索中过滤数百万个点。
3、NASA WorldWind。NASA 发布了开源的 WorldWind 软件开发工具包,所有人都可以免费使用火箭科学家的工作成果。WorldWind 是一个虚拟地球 SDK,允许程序员将美国航天局的地理渲染引擎添加到自己的 Java、Web 或 Android 应用程序中。 WorldWind 的地理空间数据远远超过了谷歌地球(Google Earth),它是由 NASA 工程师通过高程模型和其他数据源可视化地形的方式生产的。其网站称:“世界各地的组织都使用 WorldWind 监测天气模式,可视化城市和地形,跟踪车辆移动,分析地理空间数据以及对人类进行地球知识的教育。”
4、JMARS 和 JMoon。 Java 任务 — 遥感计划和分析(JMARS)是一个地理空间信息系统,由亚利桑那州立大学火星空间飞行设施人员编写,自 2003 年开始公开发行,至今仍为 NASA 科学家所使用。 月球JMARS (月球科学家称之JMoon)可以分析月球勘测轨道飞行器(Lunar Reconnaissance Orbiter,LOR)拍摄的广角图像,它是一种自动航天器,自2009 年发射以来,一直在50 至200 公里的月球轨道上运行,并能将观测结果发送给NASA 的行星数据系统(Planetary Data System)。
5、小体映射工具( Small Body Mapping Tool ,SBMT)。 SBMT 在太空科学家中很受欢迎,是由约翰霍普金斯大学应用物理实验室开发的,它使用来自航天器的任务数据以 3D 的形式可视化小行星、彗星和小卫星等不规则天体。 SBMT 是用 Java 编写的,并使用了用于 Java 3D 图形处理的开源可视化工具包(VTK)。“黎明“号(Dawn)、“罗塞塔”号(Rosetta)、“奥西里斯 — 雷克斯”号(OSIRIS-REx)和“隼鸟二号”(Hayabusa2)飞行任务团队在探索彗星、小行星和矮行星时都使用了 SBMT。
数据的强度
6、Wikipedia Search。一部大众百科全书应该运行在开源软件上,并且具有一个由 Java 驱动的搜索引擎,这是再合适不过的了。 Lucene 是由 Doug Cutting 于 1999 年编写,并以他妻子的中间名命名的,它实际上是 Cutting 开发的第五个搜索引擎。他作为工程师先后为 Xerox PARC(施乐帕克研究中心)、Apple 和 Excite 创建了其他的引擎。 2014 年,Wikipedia 用 Elasticsearch 代替了 Lucene 引擎,Elasticsearch 是一个分布式的、支持 REST 的搜索引擎,也是用 Java 编写的。
7、Hadoop。 Lucene 并不是唯一一个进入我们这个榜单的 Cutting 创建的作品。2003 年,Google 在一篇研究论文中描述了在大型商用计算机集群上处理数据的 MapReduce 算法,受该论文的启发,Cutting 用 Java 编写了一个 MapReduce 操作开源框架,并以他儿子的玩具大象命名,称为 Hadoop 。 Hadoop 1.0 于 2006 年发布,催生了大数据趋势,并激发了许多公司开始收集“数据湖”(data lakes),制定挖掘“数据排放”(data exhaust)的策略,并将数据描述为“新石油”(the new oil)。到 2008 年,Yahoo(当时的 Cutting 曾在该公司工作)宣称他们的 Search Webmap 运行在 10,000 个内核的 Linux 群集上,是现有的最大的产线 Hadoop 应用程序。到 2012 年,Facebook 声称在全球最大的 Hadoop 集群上拥有超过 100 PB 的数据。
8、并行图形分析(Parallel Graph AnalytiX,PGX)。图形分析是有关理解数据中的关系和连接的。根据基准测试, PGX 是世界上速度最快的图形分析引擎之一。 PGX 是用 Java 编写的,由 Oracle Labs 研究员 Sungpack Hong 领导的团队于 2014 年首次发布,PGX 允许用户加载图形数据并运行分析算法,比如,社区发现(Community Detection)、聚类、路径查找、页面排名、影响因素分析、异常检测、路径分析和模式匹配等算法。在健康、安全、零售和金融领域,它的用例比比皆是。
9、H2O.ai。机器学习(ML)的曲线非常陡峭,这可能会阻止领域专家实现伟大的 ML 想法。自动化 ML(AutoML)可以通过推断 ML 流程中的某些步骤(例如特征工程、模型训练和调整以及转译等)来提供一些帮助。 由 Java 冠军 Cliff Click 创建的基于 Java 的开源 H2O.ai 平台,旨在实现 AI 的大众化,并能为那些刚入门的人们充当虚拟数据科学家,同时能帮助 ML 专家提高效率。
有趣的世界
10、 Minecraft。该游戏的和平环境是由生物群落、人以及自己用积木搭建的住所组成的,它对世界各地的儿童和成人都有着持久的吸引力,这使得它成为历史上最受欢迎的视频游戏。 Minecraft 及其 3D 宇宙是由 Markus “Notch” Persson 用 Java 开发的,并于 2009 年以 Alpha 版本发布,它是永无止境的创造力之源,因为没有两个衍生的世界是一样的。该视频游戏对Java 的使用也可以让在家和学校的程序员创建自己的模块。
11、Jitter 机器人和 leJOS。在自动吸尘器 Roomba 出现之前,就已经有 Jitter 。Jitter 是一个用来吸取国际空间站(ISS)中漂浮颗粒的原型机器人,它能够在失重状态下导航,在墙壁上弹跳,并能使用回转仪进行自我定位。据报告称,俄罗斯宇航员发现该机器人的 x、y、z 旋转操作令人印象深刻,能让人联想到国际空间站自身是如何控制其方向的。Jitter 是 leJOS 最出类拔萃的原型,leJOS 是 Lego Mindstorms 的 Java 虚拟机,是 Lego 的硬件软件环境,可用于从积木玩具中开发可编程的机器人。玩具 OS 可以追溯到 1999 年由 José Solorzano 发起的 TinyVM 项目,该项目后来演变成 leJOS,由 Brian Bagnall、JürgenStuber 和 Paul Andrews 领导。这个功能齐全的环境具有许多特定于机器人编程的类,这些类使用 Java 的面向对象特性进行了简化,使得任何人都可以利用其高级控制器和行为算法。
12、Java 小程序。根据牛津英语词典,小程序(applet)一词最早出现在 1990 年的 PC Magazine(计算机杂志)上。但是直到 1995 年 Java 出现后,小程序才真正腾飞。Java 小程序可以在网页(Frame、新窗口、Sun 的 AppletViewer 或测试工具)中启动,并能运行在于浏览器相独立的 JVM 上。一些人将 Minecraft 的早期成功归功于这样一个事实:玩家可以通过 Java 小程序在 Web 浏览器中玩游戏,而不必下载并安装游戏。尽管 Java 小程序自 Java 9 以来就不被推荐,并且在 2018 年也被从 Java SE 11 中剔除掉了,但它们一度是最快的游戏。一个有趣的事实是:Java 小程序还可以访问 3D 硬件加速,这使得它们在科学可视化方面很受欢迎。
荣誉代码
13、NetBeans 和 Eclipse IDE。最早进入 Java 集成开发环境世界的是 NetBeans ,NetBeans 于 1996 年在布拉格的查尔斯大学(以 Xelfi 的名义)创立,并于 1997 年由企业家 Roman Staněk 创立的同名公司进行商业化。 Sun 在 1999 年购买了支持所有 Java 应用程序类型的模块化 IDE,并于次年将其开源。 2016 年,Oracle 将整个 NetBeans 项目捐赠给了 Apache 软件基金会(Apache Software Foundation)。
另一个流行的基于 Java 的集成开发环境是开源的 Eclipse IDE,它不仅可以用于 Java 编码,还可用于从 Ada 到 Scala 的其他语言的编码。 Eclipse SDK 由 IBM 于 2001 年推出,是基于 IBM VisualAge 的,它是面向 Java 开发人员的,但是可以通过插件进行扩展。 Eclipse IDE 于 2004 年从 IBM 分离出来并加入 Eclipse 基金会,它目前仍然是可用的顶级 IDE 之一。
14、 IntelliJ IDEA。IDE 有很多,但 IntelliJ IDEA 在 2001 年推出后就成为了人们的最爱。如今,IntelliJ IDEA 已成为许多 IDE 的框架,这些 IDE 适用于 Python、Ruby 和 Go 等多种语言。 IntelliJ IDEA 及其相关的JetBrains IDE 套件是使用Java 编写的,可以提高许多开发人员所依赖的生产力和导航功能。其中包括代码索引、重构、代码完成(这要早于智能手机上的文本自动完成)以及发现错误的动态分析(类似于拼写检查器)。 “ IntelliJ IDEA 帮助克服了在某个框架下管理和调试基于Java 和JVM 的复杂应用程序的挑战,”驻英自由软件和数据工程师、Java 冠军Mani Sarkar 说。 “它们让开发人员在使用它们的工具时,感到高效、多产,最重要的是能感到快乐。”
15、Byte Buddy。开源 Java 库 Byte Buddy 的创建者,来自奥斯陆(挪威 Oslo)的软件工程师 Rafael Winterhalter 坦承,他的一生(有时令人发狂)专注于小众市场。尽管如此,他的贡献还是大受欢迎:Winterhalter 说,用于 Hibernate 和 Mockito 等 Java 工具的 Byte Buddy 运行时代码生成和操作库每月下载量高达 2000 万次。
16、Jenkins。 Jenkins 由 Sun Microsystems 工程师 Kohsuke Kawaguchi 于 2004 年创建,是一个功能强大的开源的持续集成服务器。 Jenkins 用 Java 编写,可帮助我们快速自动地构建、测试和部署应用程序。它通常被认为是使“基础设施即代码”(Infrastructure As Code,Iac)成为可能的早期 DevOps 工具之一。 Jenkins 及其 1500 多个由社区贡献的插件可以处理各种各样的部署和测试任务,从与 GitHub 合作,到支持色盲开发人员,再到提供 MySQL Connector JAR 文件。
17、GraalVM。由 Oracle Labs 的 Thomas Wuerthinger 领导的一个苏黎世(Zurich)研究团队,花费了多年的时间来磨练三个想法:我们是否可以用 Java 编写编译器(原始 JVM 是用 C 编写的)呢?它是否可以运行以任何语言编写的程序呢?它是否够高效呢?在发表了 60 篇研究论文之后, GraalVM 最终胜出,并成为了一个商业产品。 Twitter 是这项技术的狂热爱好者之一,它使用 GraalVM 来提高服务的速度和计算效率。
18、Micronaut。为云编写代码的开发人员需要仔细考虑其应用程序使用了多少内存,以及应用程序如何使用这些内存。 Micronaut 的创建者 Graeme Rocher 说: “您必须使应用程序对重启、故障自动切换、停机再恢复非常敏感,并在启动时间和内存消耗方面进行优化,” 。Micronau 是一个用于微服务的 Java 框架,该微服务需使用注解元数据,以便 JVM 能够有效地编译应用程序的字节码。
19、WebLogic Tengah。 1997 年, WebLogic Tengah 成为企业级 Java 服务器的首个实质性实现。 “它早于 Java 2 企业版,并成为 BEA 的主要产品,最终导致了 Oracle 收购 BEA Systems,”Java Magazine 和 Dr. Dobb’s Journal 的前主编 Andrew Binstock 说。 与此同时,IBM 在业务对象框架 San Francisco Project 上的成功,“使 Java 真正从酷孩子们正在玩的一个有趣的新事物中脱颖而出,并成为一种严肃的业务工具,”Binstock 说。如今,Oracle WebLogic Server 仍然是领先的 Java 应用程序服务器。然而,另一种选择仍在蓬勃发展:开源应用程序服务器 GlassFish ,它于 2005 年由 Sun 创建,于 2018 年捐赠给 Eclipse 基金会。
20、Eclipse Collections。工作在投资银行、证券交易所和其他金融服务公司的许多高薪开发人员都需要强大的 Java 技能,这是有原因的:Java 编程语言擅长处理并发,即管理高频交易和其他大规模金融事务中常见的多个执行线程。 Eclipse Collections 最初称为 Goldman Sachs Collections,后来捐赠给了 Eclipse 基金会,它扩展了原生 Java 的性能密集型特性,“具有优化的数据结构和丰富的、功能强大的、流畅的 API”,Java 冠军 Mani Sarkar 说。 Sarkar 指出,Eclipse Collections 包含缓存、原语支持、并发库、通用注解、字符串处理、输入 / 输出等等。
21、NSA Ghidra。在旧金山举行的 2019 年 RSA 大会上,美国国家安全局( U.S. National Security Agency)推出了一款基于 Java 的开源工具 Ghidra ,安全研究人员和从业者现在可以使用它来了解恶意软件的工作原理,并检查自己的代码是否存在漏洞。这个逆向工程平台可以将软件从机器语言反编译回源代码(例如 Java 语言)。该工具有一个故事,即使不是声名狼藉,也是传奇:2017 年 3 月,维基解密(WikiLeaks)将其存在公之于众。
绘制基因组图谱
22、集成基因组浏览器( Integrated Genome Browser,IGB)。绘制人类基因组图谱的竞赛始于 1990 年,并在 13 年后结束。当时,医学研究人员成功地对生物技术专家 Craig Venter 的 30 亿个 DNA 碱基对进行了测序,这项工作历时 10 年,涉及 3,000 人,耗资 30 亿美元。测序完成后,科学家们很想深入研究我们这个物种的源代码,但是怎么做呢?进入基于 Java 的基因组浏览器,这是一个由包括生物信息学教授 Ann Loraine 在内的团队开发的可视化工具,可用于探索基础数据集和参考基因注解。开源的集成基因组浏览器(Integrated Genome Browser )允许研究人员放大、平移和绘制基因组数据,以便识别和注解遗传特征。为了配合这一全球努力,加州大学圣克鲁兹分校(University of California Santa Cruz)提供了一个类似的工具,即由Jim Kent 管理的基因组浏览器(Genome Browser)。
23、BioJava。 BioJava 于2000 年启动,至今仍很强大,它是一个用于处理生物数据的开源库,生物数据领域也被称为生物信息学。科学家使用该库可以处理蛋白质和核苷酸序列,并可以研究有关基因到蛋白质翻译、基因组学、系统发育和大分子结构的数据。该项目得到了开放生物信息学基金会(Open Bioinformatics Foundation,OBF)的支持,其全球范围的贡献者得到了各种制药、医学和基因组学领域的资助。 “BioJava 是方法论和软件开发的一个热门选择,这要归功于Java 的可用工具及其跨平台的可移植性,” Aleix Lafita 及其同事在2019 年发表的一篇题为“ BioJava 5:社区驱动的开源生物信息库”的论文中写道。该论文进一步指出,自2009 年以来,BioJava 已经接受了65 个不同开发人员的贡献,并且在过去的一年中,它已在GitHub 上累积了224 个fork 和270 个star,并且下载次数超过了19,000 次。
最喜欢的“东西”
24、VisibleTesla。这款基于 Java 的应用程序是由特斯拉(Tesla)汽车爱好者 Joe Pasqua 于 2013 年创建的,它是一个免费程序,可用于监视和控制他的特斯拉 Model S。 VisibleTesla 的灵感来自于特斯拉汽车俱乐部社区,它提供与电动汽车制造商官方移动应用程序类似的功能。用户可以为诸如解锁的门或充电状态之类的东西设置地理围栏和通知,以及收集和处理行程数据。该项目的开源代码托管在 GitHub 上。
25、SmartThings。该物联网(IoT)应用程序是由 SmartThings 开发的(SmartThings 是由 Alex Hawkinson 于 2012 年联合创立的,后来在 Kickstarter 上筹集了 120 万美元的资金),可以让我们通过智能手机或平板电脑控制和自动化所有的东西,从家用照明、锁、咖啡机、恒温器以及收音机到全部家用安全系统。该应用程序使用基于 Java 的 Micronaut 框架(请参阅#18),因此它基于云的服务可以以亚秒级的速度运行。该公司于 2014 年被三星电子(Samsung Electronics)以 2 亿美元的高价收购。
原文链接:
The 25 greatest Java apps ever written
June 5, 2020 Download a PDF of this article The story of Java began in 1991, at a time when Sun Microsystems sought to…
blogs.oracle.com
原文翻译:
https://www.infoq.cn/article/BtfTSYFwvyzDNf4VWVpp