1. Object 类
(1) 所有的类都会直接或者间接继承Object类, 它是所有类的父类!
(2) equals方法: 使用的是==判断两个对象内存地址是否相同. 如果一个类继承了Object, 自己没有重写equals方法, 就是用的Object类的equals方法 , 判断方式就是比较两个对象的地址了!
(3) toString(): 方法, 默认是返回类名和地址值, 一般会重写这个方法, 让它返回成员变量的内容, 方便调试程序!
① 使用快捷键生成toString方法: alt+shift+s 再按s
2. Collections工具类
(1) sort(List): 可以对List集合进行排序
(2) reverse(List): 可以对List集合的内容进行反转!
3. Arrays工具类
(1) toString(数组): 可以把数组的内容转换成一个字符串, 字符串的格式是: [元素1, 元素2, .... ]
(2) sort(数组): 可以对数组进行排序
4. StringBuffer类
(1) append(任意类型数据): 可以把任意类型的数据转换成字符串,然后拼接起来
(2) delete(start,end): 删除指定位置的内容, 包含头不包含尾!
(3) 把Stringbuffer对象转换成字符串用toString()
(4) StringBuilder和StringBuffer功能上是一样的, 但是StringBuffer是同步的(安全),StringBuilder是不同步的, StringBuilder的效率高! StringBuilder在开发中更常用!
5. 内存输出流:(了解)
(1) 作用: 把一个小文本文件读取到内存中, 再转换成字符串, 可以避免乱码的情况, 还可以指定使用什么编码去转换!
(2) 不要读取太大的文件, 否则容易内存溢出, 因为它的所有数据都是写在内存中的!
(3) 这个流是不需要指定文件路径的, 因为它的所有数据都是写在内存中的!
(4) 可以通过toString() 把内存中的字节转换成字符串, 还可以指定字符编码!
(5) toByteArray(): 可以获取到内存中的所有字节
(6) close(): 这个流因为没有关联到文件, 所以, 其实不需要关闭流, 关闭了也没有效果!
6. Properties类(了解)
(1) Properties类是一个存储key和value的集合, 但是它存储的key和value都是String类型
(2) setProperty(key,value): 推荐使用这个方法来存储数据,因为它可以限制存储的key和value都是String类型
(3) getProperty(key): 根据key获取value
(4) store(输出流,字符串): 输出流是指定写到哪个文件中, 字符串是备注
(5) load(输入流): 指定从哪个文件中加载数据到集合!
(6) 这个类一般用于写配置文件!
7. 反射
(1) 举个例子: 一个人买了一个笔记本, 他可以使用笔记本看电影, 玩游戏.... 但是他不会拆开笔记本, 但是如果笔记本坏了, 他自己不会修, 他可以把笔记本给维修人员, 维修人员可以把笔记本拆开, 修理里面的内容!
(2) 在编程中, 我们定义一个类, 一般是创建这个类的对象, 调用这个对象的方法或者属性! 但是技术好的人, 他可以修理一个类!使用的就是反射技术!
(3) 反射的入门: 如何拆一个类! 不讲如何修!!
(4) 如何获取一个类的字节码对象: Xxx.class
① 第一种方式: Xxx.class
② 第二种方式: 对象.getClass()
③ 第三种方式: Class.forName(完整类名), 开发用这个多点
④ 以上三种方式获取到的字节码对象其实是同一个
(5) 一个类中只有三部分内容: 成员变量, 构造方法, 普通方法!
① 获取构造方法的对象,并创建对象
1) getConstructor(): 获取公有的构造方法
2) getDeclaredConstructor(): 获取任意权限的构造方法
a. 这两个方法如果有参数,必须是类型的字节码对象,例如: String.class
b. 如果是基本类型, 也是字节码对象, 例如: int.class
3) 私有的内容一定要去除权限限制: setAccessible(true)
② 获取成员变量,并设置值, 或者获取它的值
1) getDeclaredField(变量的名字): 获取指定那个成员变量
2) 私有的内容一定要去除权限限制: setAccessible(true)
3) set(对象,值): 给指定的对象设置该成员变量的值
4) get(对象): 获取这个对象中成员变量的值
③