Serializable接口:
Serializable接口是启用其序列化功能的接口。实现java.io.Serializable 接口的类是可序列化的。没有实现此接口的类将不能使它们的任意状态被序列化或逆序列化。
public interface Serializable类通过实现 java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。
要允许不可序列化类的子类型序列化,可以假定该子类型负责保存和还原超类型的公用 (public)、受保护的 (protected) 和(如果可访问)包 (package) 字段的状态。仅在子类型扩展的类(父类)有一个可访问的无参数构造方法来初始化该类的状态时,才可以假定子类型有此责任。如果不是这种情况,则声明一个类为可序列化类是错误的。该错误将在运行时检测到。
在反序列化过程中,将使用该类的公用或受保护的无参数构造方法初始化不可序列化类的字段。可序列化的子类必须能够访问无参数的构造方法。可序列化子类的字段将从该流中还原。
java 集合里面的接口有
collection 代表一组对象,每一个对象都是他的子元素
list 有序可重复元素的 collection
set 无序不可重复元素的 collection
map 把值映射到键 键不能重复
arraylist 和 Vector 的区别
arraylist 是线程不安全,线程不同步,可以设置开始的空间大小,不能设置增长的空间大小,默认增长是原来的0.5倍;
Vector 是线程安全的,线程同步,可以设置开始的空间大小,能设置增长的空间大小,默认增长是原来的1倍;
iterator 和 listiterator 的区别
iterator 只能向后遍历 ,不能向前遍历
listiterator 实现了 iterator ,能向后遍历也能向前遍历,多了增加 替换 能向后遍历也能向前遍历等等的功能
enumiterator 和iterator 的区别
iterator是可以遍历中使用remove 删除元素,而enumiterator 能用remove 删除
enumiterator 速度 是iterator 速的两倍,iterator 是线程安全的,其他线程不能修改iterator 正在遍历的集合
hashmap 和 hashtable的区别
hashmap 是线程不安全的 ,hashmap 允许null值null键
hashtable 是线程安全的,hashtable不允许null值null建
因为hashmap 是线程不安全的所以运行速度比hashtable 快