collection 容器 接口
set 不能重复 无序
list 可重复 有序
hashMap - >map 通过对象找对象
list 可重复 有序
hashMap - >map 通过对象找对象
迭代器 遍历容器
link
ArraryList 线程不安全 效率高 底层实现是数组 查询,块 加入 删除慢
LinkList 线程不安全 效率高 底层实现是链表 查询慢 加入 删除块
Vector 线程安全 效率低
LinkList 线程不安全 效率高 底层实现是链表 查询慢 加入 删除块
Vector 线程安全 效率低
System.Arrarycopy();
数组复制
数组复制
Map 健(key)-值(value)段 健不重复
Map.put(key,value) 一对一对放 类似相关关系
Map.put(key,value) 一对一对放 类似相关关系
hashMap() 线程不安全 效率高
hashTable() 线程安全 效率高
hashTable() 线程安全 效率高
set 底层是Map
默认hashcode 是根据地址计算
hasdset 底层是hasdmap 并将hashset的对象当成hashmap的键
remove 根据
set 散列
容器加上泛型后 只能加一种类型对象
List<Student> list = new ArraryList<Student>();
List<Student> list = new ArraryList<Student>();
javabean 实体类 属性和set和get方法
map 类似
map 类似
Iterator 接口(迭代器) 容器变量
先获得迭代器 然后循环
Student<T1,T2>
Student<String,Integer> 不能是静态 基本数据类型
T type
k v key value
泛型接口 接口中 泛型字母自能使用在方法中 不能在常量中
泛型方法 只能获取 不能修改信息
public static <T> void test(T a) {
System.out.println();
}
泛型 自动检查多态类型
public static <T> void test(T a) {
System.out.println();
}
泛型 自动检查多态类型
父类是泛型类
public abstract class Father<T> {
}
子类 (1)类 class child1 extends Father<String> {
}
(2)泛型类 使用时确定 个数与父类类型字母个数相同
class child2<T> extends Father(T) {
}
(3)子类为泛型类,父类不指定类型 泛型的擦出
class child3<T1> extends Father{
}
(4)子类擦除 父类擦除
class child4 extends Father {
}
public abstract class Father<T> {
}
子类 (1)类 class child1 extends Father<String> {
}
(2)泛型类 使用时确定 个数与父类类型字母个数相同
class child2<T> extends Father(T) {
}
(3)子类为泛型类,父类不指定类型 泛型的擦出
class child3<T1> extends Father{
}
(4)子类擦除 父类擦除
class child4 extends Father {
}
在父类随父类 在子类随子类
重写 随父类
重写 随父类
范式无多态
类上 不能用?
extends <= 上限
super >= 下限
类上 不能用?
extends <= 上限
super >= 下限
泛型嵌套
没有泛型数组
可以申明 可以使用?
可以申明 可以使用?
jdk1.7 可以 A<String> x = new A<>();
泛型使用 不指定类型 擦除 默认Object
但自己自定Object 不是擦除 而是使用时与Object比较
但自己自定Object 不是擦除 而是使用时与Object比较
增强for 必须实现迭代器 及增强for即迭代器
Java.lang.Iterable接口
Java.lang.Iterable接口
排序 系统内置的实现了Comparable接口 并重写了比较
CompareTo() 方法
我们自定义排序 需要实现Comparator 接口 的 Compare方法
TreeSet
使用时 不能修改数据 否则可能打乱排序
因为是放入时排序
因为是放入时排序
使用final 修饰
hashMap hashTable 区别
hashtable 线程安全 同步 效率相对低下
hashmap 线程安全 不同步 效率高
父类 hashtable Dictionry hashMap AbstractMap
null hashtable 键与值不能为null
hashMap 健最多一个null 值可以多个Null
Properties
读写资源配置文件
值与键 只能为字符串
后缀为 properties
字节流
字符流
.xml
WeakhashMap 键为弱引用 gc立即回收
IdentyMap 键比较地址 注意常量池对象
EnumMap 枚举Map 键为枚举值
Collections 管理同步 即是容器变为线程安全的容器
SynchronizationXXX();
Collections,synchronizationList();
Collection只读设置
empty
empty
https://code.google.com/p/guava-libraries/
ByteArrayOutputStream 需要将节点流中的数据保存到byteArrayOutputStream中 再统一
bos,toByteArray() 方法 输出到字节数组里
引用类型 数据+类型
序列化 输入流 ObjectInputStream
反序列化 输出流 ObjectOutputStream
序列化 和 反序列化 顺序一致
不是所有的对象都可以序列化 必须实现 java.io.Serializable 接口
不是所有属性都需要系列化 不想某属性序列化
private transient String name;
public static void close(Closeanle ... io)
可变参数(个数) 只能放到最后
可变参数(个数) 只能放到最后
1.7新特性 try --- with --- resorce
自动关闭 编译后一样
printstream = system.out;
重定向
RandAccessFile 随机读取 可用于文件分割
RandAccessFile(src."r") 只读
sequenceInputStream 合并两个流
使用Vector 存储枚举流
使用Vector 存储枚举流