今天又是一个Java的好日子!
TreeSet
底层:红黑树
优点:升序排序,查询效率较高
引用数据类型的去重和排序:实现内部|外部比较器
- 内部比较器 : Comparable 接口 实现Comparable接口重写comparaTo方法,自定义比较规则
- 外部比较器: Comparator 接口 重写compare方法,自定义比较器
Map
- 存储的数据都是key,value键值对形式的
- key 可以任意数据类型 无序的,唯一的 -->set结合
- value 可以任意数据类型 无序的 ,不唯一的 -->Collection结合
- 一个key只能对应一个value(value可以为集合,集合中存储多个数据)
HashSet是由HashMap维护的,但是HashMap是键值对的形式,初始容量是16,加载因子是0.75
- 底层是hash表的结构
- HashMap的key如果是引用数据类型的对象,做去重要重写hashCode和equals
- 如果想要实现value去重,需要手动判断
反射:
JAVA 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 java 语言的反射机制
Java 反射机制,可以实现以下功能:
①在运行时判断任意一个对象所属的类;
②在运行时构造任意一个类的对象;
③在运行时判断任意一个类所具有的成员变量和方法;
④在运行时调用任意一个对象的方法;
⑤生成动态代理。
反射
- 1.创建对象的时候,拿到的都是当前类型Class对象的一个镜像|赋值体
- 2.在类加载的时候,会在内存中存在当前类型的一个Class对象,一个类的Class对象中存储这个类的所有信息(属性,方法,构造器…)
- 3.只要我们能够获取这个类型的Class对象,就可以对这个类做一切操作
- Class 类的实例表示正在运行的 Java 应用程序中的类和接口
- 获取源头(Class对象):
- 1.对象.getClass()
- 2.类名.class
- 3.Class.forName(“类的权限命名:包名+类名”)
通过反射创建对象
1)通过反射获取到类中的构造器
2)根据构造器创建对象7
构造器Constructor对象.newInstance(实参)方法
直接通过class类的newIntance()方法创建对象,方法没有参数 调用空构造
秃秃秃秃秃秃秃秃秃秃!