在Java体系学习过程中,我们总是听到容器一词,但到底如何理解容器?接下来,我从不同角度进行解释我对容器的理解:
从Java语言出发:
在Java语言中,我们使用数组存储对象,但有一个前提必须知道数组的大小,其次数组中的数据类型必须一致,但当我们不确定数据的大小,只有在运行的过程中才根据需要创建对象的时候,数组显然不能满足我们的要求,Java使用容器类来解决这个问题,基本的类型是List,Set,Queue和Map,这些对象也称集合类,”由于Java的类库中使用Collection来指代该类库的一个特殊子集,因此我们有时候使用更广泛的术语“容器”称呼他们。容器提供了完善的方法来保存对象,你可以使用这些工具来解决数量惊人的问题。” --《Java编程思想》第四版。
在这里,容器就是“集合”,它提供了很多容器类,这些类有各自的特点,用来针对不同的场景存放数据,例如ArrayList容器类,它的低层使用数组存放,同时可以进行自动扩张其尺寸,Set集合类,其存储的数据不可以重复,等等等,总的来说,在这里容器的目的就是“保存对象”。
从框架出发出发:
当我们学习Web开发的时候,我们接触到的第一个框架就是Servlet框架,这里我们经常看到的一个名词就是Servlet容器以及Servlet.
当我们访问动态网页的时候,网页的生成需要进行操作,例如从数据库获取数据,以及进行各种计算,最后将生成的网页返回给我们。在Web中,Servlet扮演者生成动态网页的角色。Servlet是一个基于Java的Web组件,实质是按照Servelt规则编写的一个Java类,运行在服务器端,用来生成动态网页。Servlet容器统一管理Servlet.
Servlet容器,也叫Servelt引擎,是Web服务器的一部分,用来接收请求,并对请求进行处理,将结果返回给Web客户端。Servlet容器负责在Servlet生命周期内管理Servlet。Servelt容器分3种:⑴独立运行的Servlet容器,Servlet作为构成Web服务器的一部分存在。⑵内置的Servelt容器,由Web服务器插件和Java容器两部分组成,这种情况,需要在Web服务器内部地址空间中打开一个JVM,在JVM上加载Servlet容器并运行Servlet。⑶外置的Servelt容器,与内置相反,在Web服务器的外部地址上打开一个JVM,加载Servlet容器并运行Servelt。
从框架的角度出发,容器的基本功能:还是存储对象。这里存储的是Servlet,同时容器提供了很多操作,接受请求,返回响应,管理Servlet的生命周期,管理Servelt。
如果想对容器有更深入的了解,可以学习学习Tomcat,由于本人对Tomcat也是暂时未理解透彻,所以就不举例了