java经常使用实体类、集合类

 1:String类,字符串是常量,他们的值在建立以后不能更改,能够共享。java

  equals()用来比较两个字符串的值,==只有当这两个实例指向同一个字符串对象才返回true数组

2:线程安全的可变字符串类StringBuffer,主要操做是append()和insert()。缓存

3:可变字符串类StringBuilder,不保证同步,用在字符串缓存区被单个线程使用的时候,比StringBuffer快。安全

三者的使用状况:多线程

a)若是偶尔对剪子的字符串常量进行拼接,那么可使用String,他足够简单并且轻量级。app

b)若是须要常常对字符串进行拼接、累加操做,使用StringBuffer或者StringBuilder框架

c)单线程使用StringBuilder,他比StringBuffer快,多线程中选后者,他是线程安全的。ide

 

4:集合类Collection,表明多个对象的集合,分为工具

a)Queue类:队列类,先进先出的队列ui

b)List类,列表类,元素有序,且容许重复

c)Set类,集合类,元素能够有序也能够无序,不容许重复。

映射类Map:存储多个键值对。

5:Collections与Collection的区别:前者是对后者集合类进行各类操做的服务类。

a)Collection是个java.util下的接口,它提供了对集合对象进行基本操做的通用接口方法,collection接口在java类库中有不少具体的实现,它的意义是为各类具体的集合提供了最大化的统一操做方式。

b)conllections是个java.util下的实体类,它包含各类有关集合操做的静态方法,提供一系列静态方法实现对各个集合的搜索、排序、线程安全化等操做,就像一个工具类,服务于java的Collection框架。

6:列表类List

a)LinkedList链式访问,以指针相连,适合于在链表中间须要频繁进行插入和删除操做。

b)ArrayList相似数组的形式,按照序号存储,随机访问速度很是快。

c)Vector向量按照各元素序号存储,数组大小能够动态增加,对于大容量数据存储效率较高。

d)Stack堆栈,先进后出的数组。

7:这些类的对比与选择:

若是涉及到堆栈队列等操做,应该考虑List中的stack,queue

对于须要快速插入删除元素,应该使用linkedlist

若是须要快速随机访问元素,应该选用arraylist

若是程序在单线程环境中,选用非同步类

若是在多线程中,选用同步类vector、stack和hashtable以及其子类。

8:map选择

hashtable和hashmap相似,可是hashtable是同步的,可是hashmap容许null来做为key和value值。

weakhashmap是一种改进的hashmap,他对key进行弱引用,若是一个key再也不被外部引用,则被gc回收。

相关文章
相关标签/搜索