J2SE总结(一)-------容器

最近大家都在讨论容器以及如何在项目中去实际的应用它,由于之前对容器没有什么概念,所以把J2SE里面讲的容器的一些基础知识看了一下,总结一下最基本的东西。

围绕整章最核心的就属下面这张图了吧。

一、概念理解

为什么要有容器这个概念:刚接触,在我理解:在编程时,经常会遇到具有重复功能或属性的对象时,经常会大量的重复工作导致代码冗余,同时,随着用户的需求不断变更,改动的次数就不不断增加,如何避免大量的改动,同时减少模块之间的耦合度(如aop池),我们定义容器,凡是装在容器内部的对象全部具有容器的一切属性和方法,这便是容器的作用。

容器:可以管理对象的生命周期、对象与对象之间的依赖关系,您可以使用一个配置文件(通常是XML),在上面定义好对象的名称、如何产生(Prototype 方式或Singleton 方式)、哪个对象产生之后必须设定成为某个对象的属性等,在启动容器之后,所有的对象都可以直接取用,不用编写任何一行程序代码来产生对象,或是建立对象与对象之间的依赖关系。

通过上图可知,在JAVA容器中,有两个分支,collection和map,其中collection是一个独立元素的序列,list和set分别是实现collection接口的两种不同形式的容器,list运行对象重复且有序,而set容器的对象是无序且不能重复的。

map是以键值对形式来表现的对象之间的映射关系类型的容器。

在编码中,如果定义了一个容器,容器中具有一些属性和方法,那么向这个容器中添加一个对象,这个对象同时也具有了这个容器的属性和方法。

例如:collection接口中所定义的方法,如果在collection容器中加入了一个普通的string或者其他对象,那么这个l对象也会自动拥有collection的所有方法。

二、list和set

在list接口中实现它的有linkedlist和arraylist

1/arraylist来源于数组,只因数组必须制定固定的长度,且长度不可变,因此用arraylist来补充它的缺陷,arraylist拥有list的特点,可以根据对象的大小来成倍的扩充内存空间。linkedlist内部是按照链表来实现的。

2、set

实现set接口的只有一种就是hashset,开始以为是哈希表,后来才知道弄错了,它类似于数学里面的集合,无序且不重复。即相同的元素不会被加入集合中。

[java] view plaincopy

  1. public static void main(string args[]){
  2. Set s=new HashSet();
  3. s.add("hello");
  4. s.add("hello");
  5. s.add("world");
  6. System.out.print(s);
  7. }
  8. //输出结果[hello,world],重复的记录只会加入一次

小结:容器正如它的名字一样,用来承载大量的数据。同时可以减少很多重复的代码,在一定技术支持下,可以减少模块和模块之间的耦合度。运用容器可以给开发人员带来很多意想不到的效果。还是要多多深入的探讨和实践才行。

时间: 2024-10-27 18:11:52

J2SE总结(一)-------容器的相关文章

【2014,羽翼渐丰振翅飞】

时间飞逝,过完了一年又一年,过着过着发现自己真长大了,大年初二的日子里便嗅到了北漂的味道. 从上半年的转变到下半年的投入,我品尝到了学习的甘甜,是一种满足感. 8月,复习了J2SE,常用类,容器,IO,线程等,容器往小了说,可以是VB中的Frame控件,在java中可以是一个List,在web上,它便是应用服务器中位于组件和平台之间的接口集合,我们可以理解它为有很多属性和方法,能提供很多种服务,将对象扔到容器中,它便享有了容器提供的各种服务.而线程和进程,却是一个很基础的概念,属于操作系统的范畴

java之j2se:再学java对象容器

今天是开学第一天,按照上学期的讲课进度,本该是可以开始学习多线程了,但是由于换了老师,可能交接方面有点出入,又给我们讲授了一遍java对象容器,所以这也是为什么题目为"再学". 本文目录: 集合的主要用途 单值类集合:List类与Set类 键值对类集合:Map类 集合的主要用途:集合主要在查询数据返回的时候常用.比如要使用jsp做一个学生信息管理系统,需要从数据库中返回查询学生的结果,把这些结果放入一个集合里,再通过方法返回,在显示层(view)可以使用jsp标签来把他们显示出来. 单

J2SE之容器_Collection_Iterator_Set_List_Comparable

容器的概念 容器API Collection接口 import java.util.*; public class BasicContainer { public static void main(String[] args) { Collection c = new HashSet(); c.add("hello"); c.add(new Name("f1","l1")); c.add(new Integer(100)); c.remove(&

J2SE之容器_Map 接口_泛型

Map 接口 Map方法举例 import java.util.*; public class TestMap2 { public static void main(String args[]) { Map<String, Integer> m1 = new HashMap<String , Integer>(); m1.put("one", 1); m1.put("two", 2); m1.put("three", 3)

JavaWeb02_servlet和web容器

JavaWeb02_servlet和web容器 OSI参考模型 应用层.表示层.会话层(TCP/IP:应用层--即程序,http层)传输层(TCP/IP:传输层--TCP/UDP协议)网络层(TCP/IP:网络层--IP,封装)数据链路层.物理层(TCP/IP:物理层--最底层,网络接口,以太网,ATM,令牌环等) 客户端 主动 创建一个socket();连接到指定计算机端口 connect();写入信息到socket() send();socket()关闭 服务器 被动 创建一个socket(

J2EE J2SE J2ME

今天第一天入职时 ,陈泽鑫经理和我讲了一部分关于 这部分的知识,主要分析了J2EE 和 J2SE,首先J2SE 和 .net都是一些编程的基础知识,类,对象,(前端????) J2EE 是企业级应用的 知识,主要由  1.应用  2:容器 (tomcat weblogic) 3:组件 还讲了一部分知识,其中 线程是怎么使用的,使用线程的几种方式,  懵了   其实这个复习过很多遍 还是需要实践才会有印象,runnable   thred 还有 线程池  进程池   如果考虑的深的话 还需要考虑线

springIoc容器详解

闲聊 无论是做j2ee开发还是做j2se开发,spring都是一把大刀.当下流行的ssh三大框架中,spring是最不可替代的,如果不用hibernate和struts,我觉得都无关紧要,但是不能没有spring,可能有人说spring有啥用啊?直接new对象又有何妨,搞了个ioc这么麻烦,又难以理解,多了这么多配置,写代码时也没有感觉到它存在的价值,曾经我一直这么认为,就是带着这些疑问不断学习spring,渐渐了解它的价值.其实spring带来的不是某种持久化技术.mvc框架,缓存组件等等,它

J2SE总结

刚刚学完J2SE,总结一下,不当之处敬请赐教. 基本概念: 刚刚接触Java,突然冒出了好多了名词,一会儿J2SE,一会儿Java,一会儿JDK,蒙圈了,总结一下他们的关系吧. SDK:Software Development Kit,软件开发工具: JDK:Java Development Kit,Java开发工具: J2SDK:Java2 SDK: Java2:自JDK1.2之后Java版本统称为Java2(点击查看JDK各版本): J2SE.J2EE.J2ME是根据Java的应用而开发的不

J2SE基础:9.集合一

1:集合: 集合的概念:数据容器(与数组类似).容器比较适合装对象. 2:集合与数组的优缺点: 数组存取效率高,使用时要求容量大小固定:适合基本数据类型的存取: 集合存取效率上有一定的牺牲,集合容量大小可以根据实际需要改变, 提供丰富的存和取对象的方法,适合成为对象的"容器" 3:集合框架体系图 接口的图标 类的图标 继承的图标:实心箭头 实现的图标:虚线 4:集合框架的分类: A:集合(SET) B:列表(List) C:键值对(Map) D:队列(Queue) Collection