IE盒子

搜索
查看: 138|回复: 1

为什么要在后端基础架构中使用Java?

[复制链接]

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2023-1-12 09:51:10 | 显示全部楼层 |阅读模式
原文链接:
您是企业IT组织的开发人员还是开发经理? 您可能正在讨论后端使用的内容。
另一方面,如果您正在构建初创公司,则方案可能会有所不同。 一些应用程序开发人员可能支持Ruby on Rails或Scala,而其他人则支持Java。 在“Choosing the Right Programming Language for Your Startup”中阅读有关此类组织内部辩论的更多信息。
在本文中,我将描述为什么要将Java用于后端基础结构。 目标不是展示Ruby on Rails,Python或Scala无效。 我打算冷静地分析Java提供的优势,以及它们为什么会有所作为。
目录


  • Java编程的开始及其演变
  • Java的特殊功能使它如今变得如此重要
  • 不同类型的Java平台:
  • 为什么Java适合你的后端? 可伸缩性是第一个原因
  • 将Java用于后端的第二个原因:跨平台使用
  • 开发Java后端的第三个原因是强大的内存管理
  • 多线程是将Java用于后端基础架构的第四个原因
  • 丰富的生态系统促进后端Java开发:第五个原因
  • Java安全优势是将其用于后端的第六个原因:
  • 熟练的人力资源是您在后端使用Java的第7个理由:
  • 你应该在你的初创公司的后端使用Java吗?
  • Blockchain可以创建更稀有的游戏内资产:
Java编程的开始及其演变

虽然它自1995年以来一直存在,但Java的第一个完整版是在1996年1月首次发布。原始名称是“Oak”,然而,存在商标问题。 然后将其重命名为Java。 有关更多详细信息,请阅读the definition of Java in “The Server Side”。
发明Java的Sun Microsystem工程师James Gosling并没有设想它在互联网经济中的广泛应用。事实上,在1996年,互联网和万维网只是一些非常新的概念。相反,Gosling认为Java将用于可以相互通信的小型互连设备中。
Java 2中Java API的大量改进是一个重要的里程碑。 Java 5加入了“Generics”,这是一项对Java语法进行重大更改的功能。
谷歌在2009年发布了他们的Android软件开发工具包‘Software Development Kit’(SDK),基于Java。这是该语言的另一个重要里程碑。此后不久,Oracle于2010年收购了Sun Microsystems,导致Java 7发布延迟。
到目前为止,Java已成为面向对象编程最受欢迎的选择,然而,2014年增加了更多功能。 2014年发布的Java 8包含了“Lambda”表达式,使开发人员能够编写面向函数的应用程序。阅读“the definition of Java in “The Server Side”中关于Java语言的演变。
Java的特殊功能使它如今变得如此重要

超过30亿台设备以某种形式使用Java,而Oracle估计它是企业使用的最常见的运行时环境。 在Oracle白皮书“Java Usage Tracking and Visualization with Oracle Fusion Middleware”中了解他们的估计。
这种受欢迎程度归功于以下功能:

  • 简单性:开发人员发现它易于学习。
  • 熟悉:20世纪90年代或21世纪初的大多数开发人员都开始使用C / C ++。由于Java看起来像那些语言,他们很快就学会了。此外,Java删除了像指针一样的C / C ++复杂性。
  • 它是一种完全面向对象的编程语言。
  • 该语言支持自动垃圾收集和简单的内存管理,以及泛型等功能。所有这些都使它成为一种强大的语言。
  • 在编译时进行静态类型检查和运行时检查使其成为一种高度安全的语言。
  • 编译成字节码使Java虚拟机(JVM)能够快速执行代码,因此Java提供了高性能。
  • Java允许多线程。
  • 您可以在任何具有JVM的系统中运行它。这种便携性是一个主要优势。
有关这些功能的更多详细信息,请阅读“Features of the Java programming language”。
丰富的生态系统支持该语言。甲骨文,IBM和谷歌等技术巨头支持它。丰富的开源库,丰富的“集成开发环境”(IDE),工具,框架和大型开发人员社区都具有额外的优势。
不同类型的Java平台:

所有Java平台都具有JVM和应用程序编程接口(API)。有四种不同的Java平台,如下所示:

  • Java平台标准版(Java SE):这是开发人员最常用的Java平台。 Java SE API提供核心功能。该平台定义了基本类型和对象,同时还定义了网络,安全性,数据库和“图形用户界面”(GUI)的高级类。
  • Java平台企业版(Java EE):它构建于Java SE之上,适用于企业级应用程序。
  • Java平台,微型版(Java ME):Java SE API的一个子集,它提供了更轻的JVM,适用于在移动电话等小型设备上运行的应用程序。
  • Java FX:您可以使用轻量级“用户界面”(UI)API创建互联网应用程序。使用它构建的应用程序使用硬件加速的图形和媒体引擎,同时它们还使用高级API来访问网络数据源。
在Oracle文档“Differences between Java EE and Java SE”中阅读有关不同类型Java平台的更多信息。
为什么Java适合你的后端? 可伸缩性是第一个原因

Java具有高度可扩展性。 以Java EE为例。 假设您已经完成了正确的规划并使用了正确类型的应用程序服务器,Java EE可以透明地集群实例。 它还允许多个实例提供请求。
在Java中,分离问题允许更好的扩展。 当处理或输入输出(IO)增加时,您可以轻松添加资源并重新分配负载。 关注点分离使应用程序透明化。
Java组件易于使用,可轻松扩展大型Web应用程序。 该语言非常灵活,您需要进行侵入性较小的编码以提高可伸缩性。 在this stackoverflow thread on Java scalability中阅读有关它的更多信息。
将Java用于后端的第二个原因:跨平台使用

Java的一大优势是“一次编写,随处运行”。我们也将此功能称为“可移植性”。您可以在具有相应JVM的所有平台上执行已编译的Java程序。
这实际上包括所有主要平台,例如Windows,Mac OS和Linux。在标题为“Is Java cross-platform”的stackoverflow线程中阅读有关Java的跨平台功能的更多信息。
首先在“.java”文件中编写Java程序。随后,使用Ecplise IDE或'javac'编译它,从而创建“.class”文件。虽然它不是强制性的,但您也可以将“.class”字段捆绑到“.jar”文件中,即可执行文件。
您现在可以将“.jar”文件分发到Windows,Mac OS和Linux,并在那里运行。可能偶尔会出现混淆,因为您可能会为一个Java程序找到不同平台的不同设置文件。但是,这些与Java无关。
有些应用程序依赖于某些平台提供的特定功能。对于此类应用程序,您需要将Java的“.class”文件与特定于该平台的库捆绑在一起。
开发Java后端的第三个原因是强大的内存管理

Javas的自动内存管理是一个显着的优势。 我将在此简要介绍它如何提高它如何提高Web应用程序的有效性和速度。
在编程用语中,我们将内存分为两部分,即“堆栈”和“堆”。 通常,堆具有比堆栈大得多的内存。
Java为每个线程分配堆栈内存,我们将在本文稍后讨论线程。 暂时,请注意一个线程只能访问其自己的堆栈内存,而不能访问另一个线程的内存。
堆存储实际对象,堆栈变量引用这些对象。堆内存在每个JVM中只有一个,因此它在线程之间共享。但是,堆本身有一些部分可以促进Java中的垃圾收集。堆栈和堆大小取决于JVM。
现在,我们将分析堆栈引用堆对象的不同类型。不同类型具有不同的垃圾收集标准。在“Java内存管理”中阅读更多相关内容。
以下是引用类型:

  • Strong:它是最受欢迎的,它排除了垃圾收集堆中的对象。
  • Weak:在垃圾收集后,一个来自于堆栈的堆中的弱引用对象可能不会存在于堆中。
  • Soft:堆中的一个对象,从堆栈中对它的软引用将在大多数时间保持不变。只有当应用程序内存不足时,垃圾收集过程才会触摸它。
  • Phantom reference:只有当我们确定对象不再存在于堆中时才使用它们,我们需要清理它们。
Java中的垃圾收集过程自动运行,它可能会暂停应用程序中的所有线程。 该过程查看我上面解释的引用并清理符合条件的对象。
它只留下其他对象。 整个过程是自动化的; 因此,如果程序员遵循使用引用类型的正确标准,他们可以专注于他们的业务逻辑。
多线程是将Java用于后端基础架构的第四个原因



多线程允许多个用户同时运行一个应用程序以执行其各自的任务。多线程不是一个新概念,例如, IBM客户信息控制系统(CICS)长期以来在它的集中式计算环境一直支持。
但是,在网络计算环境中,Java是第一种向开发人员提供此功能的编程语言。用户可以使用Java程序同时执行多个任务,这些Java程序具有单独的执行路径。
使用Java进行多线程有几个优点,它们如下:

  • 响应式服务器:无论进程处理的时间如何,服务器都保持响应,因此问题较少。
  • 快速应用程序响应:Java应用程序可以快速处理用户输入,而不管并发用户的数量。
  • 您可以同时运行多个操作。
  • 该应用程序以最佳方式使用缓存和CPU资源,从而提供更好的性能。
  • 更少的开发时间,简化的编程和更低的应用程序维护成本是其他一些优点。
注意到,使用多线程时,您的测试和调试过程会更加复杂。 但是,多线程在企业或大规模使用环境中的优势大大超过了这个缺点。 在“Java中多线程的常见优点和缺点”中阅读更多相关内容。
丰富的生态系统促进后端Java开发:第五个原因

我请你们在程序员中做一个简单的调查。只要问他们是否听说过Eclipse IDE,NetBeans,Maven和Jenkins。响应将告诉您Java生态系统的丰富程度!
我列出了Java生态系统中许多重要资源,如下所示:

  • Eclipse IDE:Eclipse是最成功的开源IDE,它与Java编译器很好地集成。它突出了编译错误,提供了组织项目的出色工具,并有助于Git版本控制。虽然Eclipse不需要介绍,但如果您需要更多详细信息,请查看Ecplise网站。
  • Maven:您可以使用它管理您的软件,它实际上是一个企业构建工具。 Maven为您提供了构建,测试,打包和部署代码的标准化方法。它还允许您很好地记录您的项目。查看Apache Maven项目网站了解更多详情。
  • Spring框架:创建它的目的只是企业Java开发。现在有超过一百万用户,它在Java服务器框架领域处于领先地位。它提供了许多有用的模块,还有其他开源框架,如Spring Security和Spring Integration。阅读Spring Framework网站了解更多详情。
我只涉及Java生态系统中的一些重要工具和框架。 您可以在以“漫游Java生态系统”开头的系列文章中进一步了解它。
Java安全优势是将其用于后端的第六个原因:

如果您是企业IT组织的高级主管或开发经理,那么这将是您使用Java作为后端的第一个理由。由于以下原因,Java在确保您的应用安全方面的得分优于所有其他编程语言:

  • 安全模型将Java程序与用户可能从未知来源下载的潜在恶意程序隔离开来。
  • Java不使用指针,因此无法对存储器块进行未经授权的访问。
  • 使用Java异常处理概念,您可以一次处理一系列错误,从而降低系统故障的风险。
  • 由于Java定义了具有预定义大小的所有基元,因此不同的JVM不会以不同的顺序执行代码。 Java还设置了操作的执行顺序。
  • JVM在执行之前每次都为病毒等测试Java字节码。
  • Java允许开发人员使用经过测试的可重用代码,从而降低风险。
  • 该语言具有访问控制机制,以防止未经测试的代码的未授权访问请求。
  • Java允许开发人员将类声明为“Final”,没有人可以覆盖。这是对黑客的另一个保证。
在“Java应用程序安全功能和度量”中阅读有关Java中安全机制的更多信息。
熟练的人力资源是您在后端使用Java的第7个理由:

无论您的位置如何,您都可能找到Java开发人员。 这可以降低您的开发和维护人员风险。 Java技能的全球可用性还允许您在需要时外包。
你应该在你的初创公司的后端使用Java吗?

如果你在一个初创公司中,你的一些开发人员可能想要像Ruby on Rails这样的时髦语言。 我建议你以冷静的方式进行这样的辩论,记住尽管在20世纪90年代发展,Java仍在不断发展。
另外,请考虑Java所享有的受欢迎程度的压倒性证据。 它在‘TIOBE programming community index’,‘Indeed job keyword trends’和“‘IEE Language Rankings 2015′中排名第一。
Java在GitHub,'Stack Overflow'和'RedMonk 2015'编程语言排名中排名第二。 在每种情况下,Java都紧随JavaScript。
除了我列出的优势之外,这些统计数据足以让您相信其初创企业的Java,而不是其他现代语言。 阅读“DZone的Java生态系统指南”中有关统计数据的更多信息。
Blockchain可以创建更稀有的游戏内资产:

(以下没有内容应该是原文遗漏)
回复

使用道具 举报

6

主题

13

帖子

23

积分

新手上路

Rank: 1

积分
23
发表于 2023-1-12 09:51:38 | 显示全部楼层
在网上查到的,虽然我还有些不太懂的地方,但是大部分内容都有很好的帮助,特意来知乎点赞[赞同]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表