关于Object、Date、System、DateFormat、Calendar和Collection以及泛型相关 Object类java.lang.Object 其中的两个方法: Public String toString():返回该对象的字符串表示 Public boolean equals(Object obj):指示其他某个对象是否与此对象“相等” toString方法: Public String toString():返回该对象的字符串表示。其实该字符串内容就是对象的类型+@+内存地址值 直接使用输出语句输出对象名的时候,其实通过该对象调用了其toString()方法 Equals方法: Public boolean equals(Object obj):指示其他某个对象是否于此对象“相等” 如果没有覆盖重写equals方法,那么object类中的默认进行==运算符的对象地址比较,只要不是同一个对象,结果必然为false 重写equals()和hashCode()方法 Date类java.util.Date(毫秒) Public Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)创建date对象,打印输出该对象,表示的是当前计算机的时间 Public Date(long date):分配Date对象并初始化此对象,以表示自从标准基准时间以来的指定毫秒数,创建一个时间对象,表示基准时间+time 之后新生成的时间(基准时间:1970.1.1 00:00:00) getTime():把日期对象转换成对应的时间毫秒值 setTime(long time):修改Date对象的时间 DateFormat类(抽象类)java.text.DateFormat 是日期/时间格式化子类的抽象类,从Date对象转换为String对象和把String对象转换为Date对象 构造方法: Public SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat.(参数pattern是一个字符串,代表日期时间的自定义格式)y --- 年 M --- 月 d -- 日 H -- 时 m -- 分 s-- 秒 E--星期 D--年中的天 K--小时(12小时制) S--毫秒 如果要匹配普通的英文字母,则需要用单引号括起来:“‘abc’” 如果要匹配单引号,则使用2个单引号:“‘’” 方法: Public String format(Date date):将Date对象格式化为字符串 Public Date parse(String source):将字符串转换为Date对象 Calendar类java.util.Calendar(抽象类) 静态方法:public static Calendar getInstance():使用默认时区和语言环境获得一个日历 其中月份从0-11,星期是从星期日开始的 常用方法:public int get(int field):返回给定日历字段的值 Public void set(int field,int value):将给定的日历字段设置为给定值 Public abstract void add(int field, int amout):根据日历的规则,为给定的日历字段添加或减去指定的时间量 Pubic Date geitTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象 Void setTime(Date d ): Date转Calendar System类java.lang.System 常用方法: Public static long currentTimeMillis():返回以毫秒为单位的当前时间 Public static void arraycopy(Object stc,int srcPos,Object dest,int destPos,int length):将数组中指定的数据拷贝到另一个数组中(改变最后一愕数组中的数据) StringBuilder类java.lang.StringBuilder 他是一个类似于String的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容 构造方法: Public StringBuilder():构造一个空的StringBuilder容器 Public StringBuilder(String str):构造一个StringBuilder容器,并将字符串添加进去 常用方法: Public StringBuilder append(……):添加任意类型数据的字符串形式,并返回当前对象自身 Public String toString():将当前StringBuilder对象转换为String对象 装箱和拆箱:基本类型与包装类之间的转换 装箱:从基本类型转换为对应的包装类对象 拆箱:从包装类对象转换为对应的基本类型 Collectiong集合 集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.Map Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.until.List和java.util.Set。其中,List的特点是元素有序、元素可重复。Set的特点是元素无序,而且不可重复。List接口的主要实现类有java.util.ArrayList和java.util.LinkedList,Set接口的主要实现类有java.util.HashSet和java.util.TreeSet。 Collection常用功能: 方法:public boolean add(E e):把给定的对象添加到当前集合中 Public void clear():清空集合中所有的元素 Public boolean remove(E e):把给定的对象在当前集合中删除 Public boolean contains(E e):判断当前集合中是否包含给定的对象 Public boolean isEmpty():判断当前集合是否为空 Public int size():返回集合中元素的个数 Public Object[] toArray():把集合中的元素,存储到数组中 Iterator接口:java.util.Iterator Iterator是Collection中的一个方法 获取迭代器的方法:public Iterator iterator():获取集合对应的迭代器,用来遍历集合中的元素 获取迭代器,需要Iterator完成操作 Iterator<E>接口也是有泛型的,迭代器的泛型跟着集合走,集合是什么泛型,地带起就是什么泛型 迭代器的使用步骤: 1、使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态) 2、使用Iterator接口中的方法hasNext()方法判断还有没有下一个元素 3、使用Iterator接口中的方法next()方法,获取集合的下一个元素 E next()获取元素,获取之后指向下一个元素 Boolean hasNext()判断是否还要元素需要遍历 Void remove():删除next指向的元素 注意事项: 1、迭代器对象迭代完毕后,指针已经指向最后一个元素,没有下一个元素了,如果想再次从头遍历集合,要获取新的迭代对象 2、在使用爹大气迭代的过程中,乳沟执行了改变集合长度的操作(如add(),remove(),clear()),则会抛出ConcurrentModificationException并发修改异常,如果要在迭代的过程中添加,删除元素,要使用迭代器自带的方法,而不能使用集合的方法 forEach循环语句 格式: For(用来接收数据或者集合中元素的数据类型 接收变量名 : 被遍历的数组或集合){ 操作变量名即可 } 注意:forEach用于遍历Collection和数组,通常只进行遍历元素,不要在遍历的过程中对集合元素进行增删操作 增强for,普通for,迭代器的区别: 增强for: 优点: 获取元素很方便, 格式简单 缺点: 没有普通for中的索引, 没有迭代器对象可以进行元素的增删 应用场景: 适用于遍历获取数组和集合元素的场景 普通for: 优点: 有索引可以使用, 某些方式可以在遍历过程中增删元素 缺点: 格式繁琐 应用场景: 需要用到索引的场景 迭代器: 优点: 可以使用迭代器对象的方法操作元素 缺点: 格式繁琐 应用场景: 需要在迭代过程中增删元素的场景 泛型: 用来灵活的将数据类型应用到不同的类、方法,接口当中,将数据类型作为参数进行传递 定义和使用含有泛型的类 定义格式: 修饰符 class 类名<代表泛型的变量 >{ } 泛型在定义的时候不具体,使用的时候才变得具体,在使用的时候确定泛型的数据类型 含有泛型的方法: 格式: 修饰符 <代表泛型的变量> 返回值的类型 方法名(参数){ } 含有泛型的接口: 格式:修饰符 interface 接口名<代表泛型的变量> { } 含有泛型的接口,第一种使用方式:定义接口的实现类,实现接口,指定接口的泛型 第二种使用方式:接口使用什么泛型,实现类就用什么泛型,类跟着接口走,就相当于定义了一个含有泛型的类,创建对象的时候确定泛型的类型 泛型通配符: 不能创建对象使用,只能作为方法的参数使用 当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符<?>表示,但是一旦使用泛型的通配符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用 不知道使用什么类型来接收的时候,此时可以使用?,?表示未知通配符 泛型的上限: 格式:类型名称<? extends 类> 对象名称 只能接收该类型及其子类 方形的下限: 格式:类型名称<? super 类> 对象名称 只能接收该类型及其父类型
|