SE day13笔记
SE13笔记
一. HashMap
注意:1.存储的数据都是key,value键值对形式的
2.key 可以任意数据类型 无序的,唯一的 -->set结合
3.value 可以任意数据类型 无序的 ,不唯一的 -->Collection结合
4.一个key只能对应一个value(value可以为集合,集合中存储多个数据)
映射: boolean containsKey(Object key)
如果此映射包含指定键的映射关系,则返回 true。
boolean containsValue(Object value)
二. HashSet是由HashMap维护的,但是HashMap是键值对的形式,初始容量是16,加载因子是0.75
注意: 1.底层是hash表的结构
2.HashMap的key如果是引用数据类型的对象,做去重要重写hashCode和equals
3.如果想要实现value去重,需要手动判断
三. TreeSet
底层:红黑树
优点:升序排序,查询效率较高
存放引用数据类型也会存在问题???–思考题
引用数据类型的去重和排序:实现内部|外部比较器
内部比较器 : Comparable 接口 实现Comparable接口重写comparaTo方法,自定义比较规则
外部比较器: Comparator 接口 重写compare方法,自定义比较器
四.反射是发生在程序运行期间的行为–java的一个动静态机制 反射
1.创建对象的时候,拿到的都是当天前类型Class对象的一个镜像|赋值体
2.在类加载的时候,会在内存中存在当天前类型的一个Class对象,一个类的Class对象中存储这个类的所有信息(属性,方法,构造器…)
3.只要我们能够获取这个类型的Class对象,就可以对这个类做一切操作
Class 类的实例表示正在运行的 Java 应用程序中的类和接口
重点:获取源头(Class对象):
1.对象.getClass()
2.类名.class
3.Class.forName(“类的权限命名:包名+类名”)
通过反射创建对象:
1)通过反射获取到类中的构造器
2)根据构造器创建对象
构造器Constructor对象.newInstance(实参)方法
直接通过class类的newIntance()方法创建对象,方法没有参数 调用空构造
例:
通过反射操作方法: 调用方法,能给方法传递实参
1.Method getDeclaredMethod(String name, Class<?>… parameterTypes)
返回一个 Method 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明方法。
2.Method[] getDeclaredMethods()
3.Method getMethod(String name, Class<?>… parameterTypes)
返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公
4.Method[] getMethods():返回一个包含某些 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法。
通过反射操作字段:
反射操作类中的字段 能设置值 能获取值
1.Field getDeclaredField(String name):返回一个 Field 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明字段。
2.Field[] getDeclaredFields():返回 Field 对象的一个数组,这些对象反映此 Class 对象所表示的类或接口所声明的所有字段。
3.Field getField(String name):返回一个 Field 对象,它反映此 Class 对象所表示的类或接口的指定公共成员字段。
- c++ 学习笔记(高级linux编程) day13
- 《30天自制操作系统》13_day_学习笔记
- 『算法学习笔记』13-15th day. 10道习题
- Java基础笔记:Day_13 异常机制相关
- Java基础:Day13笔记内容 ( Object类、StringBuffer类)
- Python学习笔记 Day 13 项目 -外星人入侵 - 1,pygame安装,OS X / Windows
- 【day 13】python编程:从入门到实践学习笔记-基于Django框架的Web开发-Django入门(四)
- day13:JavaScript DOM编程学习笔记05
- Bootstrap学习总结笔记(13)-- 基本组件之缩略图
- php 学习笔记--数组篇(13)
- 《UNIX环境高级编程》笔记13--chown,fchown和lchown函数
- Spring-Security笔记13 登录界面提示信息
- Java_SE培训笔记
- AD学习笔记13
- Android菜鸟的成长笔记(13)——异步任务(Async Task)
- 13_ARM汇编自学笔记指令系统之批量数据加载存储指令
- JavaWeb自学之JavaScript学习笔记 Day-1
- 30天自制操作系统学习笔记----day_five
- 【郝斌数据结构自学笔记】12-13_连续存储数组的算法演示
- C语言学习笔记(13指针)