集合:
一:是一个容器,可以容纳其它类型的数据,存储的引用。


👆不同的集合就是不同的数据结构
1.迭代器的Iterator
获取一个链表中的元素
iterator
hasnext
next
数组对象有一个Iterator方法,可以获取一个Iterator类型的回值,通过这返回值个可以调用方法。
instanceof 用来判断一个对象是不是某个类的实例化
boolean c=obj instanceof Class
substring用来截字符串,从0开始
substirng(2,7)
2.泛型
一:是什么
二:什么时候用,有什么用
三:怎么用
list
xxx
ArrayList<Animal> list =new ArrarlistAnimal a=new Animal;list.add(a);Iterator<Animal> it=list.iterator()while<it.hasnest>{Animal a=it.next();a.move;}class Animal{pulibc void move(){sout("移动");}}

jdk8.0之后有自动类型推断,可以直接调用定义类型的子类型
自定义泛型
3.增强for循环 foreach

for(int a :arr){
sout(a);
}
2-3:调用数组的方法有多种,包括迭代器Iterator,for循环(带下标 增强for
4.set
hashset:无序不可重复,存进去的顺序和取出来的顺序不一样
Set<String>set=new HashSet<>()set.add("a1");set.add("a1");set.add("a2");set.add("a3");
取出的顺序不一致
hashset实际上是把数据放在hashMap的key部分了
treeset:
5.Map
常用方法:

Set set=map.entrySet();
map可以转换为set,转换后的set中的类型是Map.entry类型


内部类
7.27
反射机制
7.29
一个类不能被实例化的原因有哪些?
接口 2)抽象类(3)构造方法的访问权限为私有
7.30
工厂模式:
两个类A,B,一个类A中要调用另一个类B中的方法,如果是之前,需要在A中实例化B,用实例b去调用B中的方法。
这样的耦合度太高了。
创建工厂类,工厂类的返回类型是B,return new B 工厂类返回了一个B的实例。这样就可以直接通过工厂类来调用B的实例对象
IOC需要用到工厂模式,也要用到XML解析,以及反射

