本帖最后由 chengc0723 于 2018-7-26 15:00 编辑
一、java.lang.Object类: 根类, 所有类的父类 Object的成员方法: 1. 对象名.toString(); 返回该对象的字符串表示: String str = 对象名.toString(); 如果不重写toString方法,得到得是地址值 可以通过alt+insert重写; 2. 对象名1.equals(对象名2); 比较两个对象是否相等,返回值为boolean类型;可以通过alt+insert重写; 注意:1.对象名1不能为null. 2.不重写equals方法,默认比较的是对象的地址值; 二、java.util.Date类及其方法的介绍 Date类: 日期, 表示特定的瞬间, 精确到"毫秒" 1.Date的构造方法: Date():创建Date对象,表示当前系统时间; Date(long time):修改Date对象的时间; 2.Date的常用成员方法 对象名.getTime:返回对象中的时间毫秒值(long) 对象名.setTime:修改改对象的时间(无返回值) 三、DateFormat类及其构造方法 java.text.DateFormat是一个抽象类:它有非抽象的成员方法: 1. String format(Date date):格式化Date对象为String字符串; 2. Date parse(String str):解析,吧String对象转换为Date对象; java.text.SimpleDateFormat类 SimpleDateFormatsdf = new SimpleDateFormat(“指定时间格式”); 创建一个指定时间格式类型的对象; 例如: SimpleDateFormatsdf = new SimpleDateFormat(“yyyy-MM-dd”); y:年 M:月 d:日 H:时 m:分 s:秒 E:星期 D:年中的天 K:小时(12小时制) S:毫秒 sdf.format(Datedate):格式化date时间为sdf类型的时间格式(String); sdf.parse(Stringstr):如果str格式和sdf格式一致,则把str解析为Date类型的日期. 四、java.util.Calendar抽象类:代表日历 static int YEAR :年份 static int MONTH :月份. 注意月份数值是 0-11 static int DAY_OF_MONTH :日期 static int HOUR :小时(12小时制) static int HOUR_OF_DAY :小时(24小时制) static int MINITE :分钟 static int SECOND :秒 1.Calenda c = Calendar.getIntance(); 创建一个当前时间的Calendar对象c 2. int year = c.get(Calendar.YEAE); 获取c对象的年份值赋给year c.set(Calendar.MONTH,10); 把int类型的10设置给对象c的月份 五、java.lang.System类之数组的复制方法 static void arrayCopy(Object src, int srcPos, Object dest, int destPos, int length): 复制源数 存在数组: arr1 arr2
System.arrayCopy(arr1,3,arr2,1,4) 把arr1数组中3号索引(包括)之后的4个元素,复制(替换)给arr2数组1号索引(包括)之后的4个元素 六、StringBuilder类 StringBuilder sb =new StringBuilder; sb.spend(任意类型); 添加任意类型数据并返回字符串给当前对象(sb) sb.toString 将sb转换为String类型 七、java.util.Collection接口:是所有单列集合的顶层接口 成员方法 boolean add(E e): 把给定的对象添加到当前集合中 void clear(): 清空集合中所有的元素 boolean remove(E e): 把给定的对象在当前集合中删除 boolean contains(E e): 判断当前集合中是否包含给定的对象 boolean isEmpty(): 判断当前集合是否为空(没有元素) int size(): 返回集合中元素的个数 Object[] toArray(): 把集合中的元素,存储到数组中 Iterator<E> iterator(): 获取集合的迭代器对象 ava.util.Iterator<E>迭代器: 类似于遍历, 判断是否有下一个元素, 有则取出下一个, 直到没有 使用方法 Iterator<元素类型> iterator = 集合对象.iterator(); while (iterator.hasNext()) { 元素类型 变量名 = iterator.next(); 注意事项: 1. 迭代器对象迭代完毕后, 指针已经指向最后一个元素, 没有下一个元素了. 如果想再次从头遍历集合, 要获取 新的迭代器对象 2. 在使用迭代器迭代的过程中, 如果执行了改变集合长度的操作(如add(), remove(), clear()), 则会抛出 ConcurrentModificationException并发修改异常. 如果要在迭代的过程中添加, 删除元素, 要使用迭代器自带的方 法, 而不能使用集合的方法 八、增强for循环 for(元素的数据类型 变量名 : Collection集合或数组名){…} 九、泛型 泛型的定义和使用 泛型在定义时, 不能是具体的类型, 只是一个变量名(一般用一个大写字母表示) 泛型在使用时, 必须是具体的数据类型 1. 泛型在类中使用 定义测试类 public class GenericClass<E> { // 类上声明了泛型, 类中的所有方法和成员变量都可以使用该泛型
private E name; // 成员变量的类型用泛型
public E getName() { // 成员方法的返回值类型用泛型
return name;
}
public void setName(E name) { // 成员方法的参数类型用泛型
this.name = name;
}
创建测试类对象
public class Test {
public static void main(String[] args) {
// 创建对象, 泛型为Integer
GenericClass<Integer> gc1 = new GenericClass<>();
gc1.setName(1);
Integer name1 = gc1.getName();
System.out.println(name1);
// 创建对象, 泛型为String
GenericClass<String> gc2 = new GenericClass<>();
gc2.setName("这是字符串");
String name2 = gc2.getName();
System.out.println(name2);
}
} 2. 定义含有泛型的方法与使用 修饰符 <代表泛型的名字> 返回值类型 方法名(参数){…} 方法中定义泛型后, 返回值类型和参数类型都可以使用泛型 3. 定义与使用含有泛型的接口 修饰符 interface接口名<代表泛型的变量> {…} 十、泛型通配符 不知道使用什么类型来接收时, 此时可以使用 <?>来表示未知通配符 注意: 只能接收数据, 不能调用方法存储元素 使用方式: 不能创建对象使用 只能作为方法参数使用. (减少方法重载) 泛型的上限: 格式: 类型名称<? extends 类名> 对象名称 示例: List<? extends Number> list 作用: 只能接收该类型及其子类(Number及其子类的泛型) 泛型的下限: 格式: 类型名称<? super 类名> 对象名称 示例: List<? super Number> list
作用: 只能接收该类型及其父类型(Number及其父类的泛型)
|