在Java世界中,包vs vs模块vs组件vs容器vs服务vs平台

我是Java世界的新手(7年的低级C语言)。

当我开始阅读Java相关网站时:

  • http://wiki.apidesign.org/wiki/Main_Page
  • http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/

我被现有的术语弄糊涂了:

  • 零件
  • 容器
  • 服务
  • 骨架
  • 平台

我发现了很多关于术语定义(以及更多)的资源:

  • 框架与工具包与图书馆
  • 框架和容器的区别?
  • Java中的容器是什么?
  • Java容器的定义
  • http://martinfowler.com/articles/injection.html (控制容器的倒置和dependency injection模式)
  • http://www.cafeaulait.org/course/week8/36.html (什么是AWT容器?)
  • http://en.wikipedia.org/wiki/Web_container
  • http://netbeans.org/features/platform/(NetBeans平台)
  • 什么是“应用程序框架”?
  • 什么是软件框架?
  • 框架和库有什么区别?
  • 类库和框架有什么区别?
  • JavaScript框架和库有什么区别?
  • 框架和工具包之间的主要区别是什么?
  • http://blog.orderharmony.com/2011/07/libraries-vs-frameworks.html
  • http://www.javacodegeeks.com/2012/04/frameworks-vs-libraries-as-inheritance.html

但是这些资源中的每一个都是根据自己的目的来定义它们的,在一般情况下,我仍然不能区分组件。

请大致说明这些术语的意思(可以是单一类平台,制作容器需要多less模块等)。

class A类是在基于类的面向对象编程中创build对象的蓝图; 你应该学习OOP的基础知识,并且在学习关于Java的其他知识之前,了解什么是对象,什么是类,什么是inheritance,多态,封装。

package一个包是一个名字空间; 它让你处理命名冲突。 它基本上让你有两个名为Employee的类,如果它们在不同的包中。

module它可能指的是Java库的分发和使用方式 – JAR,WAR,EAR。

component可以看作是AWT(或Swing中的JComponent)中的GUI的基类,或者可以看作是一种types的EJB – 一种符合某些要求的POJO(Plain Old Java Object) 有可能具有其他含义并取决于上下文。

container在企业应用程序中,显然最终会使用一些库和Java EE; 关于Java EE库的事情是它只提供了API接口而不是实现。 然后,将您编写和构build的应用程序部署到随Java EE API实现而来的container服务器中。 有两种types的容器:Web容器(仅用于实现特定于Web的技术)和完整的Java EE容器(实现了Web和其他Java EE技术 – 命名服务,持久性,事务处理等)。

service在Java中没有特殊的含义。 它可能与networking服务有关,这些服务基本上提供了networking上进程间通信的高级方法。

platform在Java中没有特别的意义; 它可以被看作是底层的开发平台(Windows,Linux),也可以被视为云平台即服务平台即云平台,云平台提供了基础架构和其他基础软件(操作系统,数据库,容器)。

  • 类:
    它是具有.java扩展名的普通java文件,它包含了所有必要的对象,方法等等,这些对象,方法或者其他的东西是进行应用程序所必需的,也可以从其他文件中实现或扩展其他对象或方法。

  • 软件包:它是由它们的function或名称分开的一堆类(.java)文件。 所以这也是命名的帮助。

  • 模块:大型应用程序通常由多个部分构成,彼此之间的连接比外部更紧密。 因此,人们希望这些部分能够比外部世界更容易获得。 有人可能也希望这些部分在系统的许多地方被重用,而不用担心共享数据的同步。 这部分在java中被称为模块。 WAR,jar等在java语言中被称为模块。

  • 构件:构件是大型程序或构造的可识别部分。 通常,组件提供特定function或相关function组。 在面向对象编程和分布式对象技术中,组件是一个可重用的程序构build块,可以与分布式networking中相同或其他计算机中的其他组件组合成一个应用程序。 组件在称为容器的上下文中运行。

  • 容器:一个组件运行在一个叫做容器的上下文中。容器是基于Java的Java EE技术中的Web应用程序的重要组件。 它负责维护服务器端的各个组件,包括Java servlet,Java服务器页面(JSP)和Java服务器端面(JSF)。 如何提供和访问服务取决于合同,这是Web应用程序和容器之间的协议。 这在Java EE框架中提供了相当大的安全性,因为客户端应用程序不知道容器的存在,因此无法直接访问。 因此,Web容器负责初始化Web应用程序组件并调用组件上的客户端请求。

  • 服务:服务是基于同步和asynchronous应用程序的请求/回复devise范例的分布式计算的演变。 应用程序的业务逻辑或个别function被模块化并呈现为消费者/客户端应用程序的服务。

  • 框架:框架在使用它们的代码上强加一个确定的结构,而库不是。 在软件中,框架是一组可重用的软件程序,构成应用程序的基础。 框架可以帮助程序员快速构build应用程序。 此前,开发复杂的Web应用程序非常困难。 现在很容易使用Struts,Struts 2,Hibernate,JSF,Spring等不同的框架来开发这样的应用程序。

  • 平台:平台是指来自Sun的整个Java开发和执行环境。 Java程序由驻留在目标计算机中的运行时引擎(Java虚拟机)执行。 由于Java包含自己的操作环境,与其他编程语言相比,它被称为“平台”,一旦编译,就自行运行。 请参阅Java,Java 2,Java虚拟机和Java运行时环境。