1.Objeck类
Objeck类是所有类的父类
特点:根类,每个类都可以直接或者间接的继承Objeck类
所有类的对象都可以使用Objeck类的方法
2.Objeck类中的toString方法
特点:
返回该对象的字符串表示,不覆盖重写默认继承Objeck类的 toString方法,输出的是地址值.
如果要显示对象的属性值就需要在自定义的类中重写toString方法.
3.Objeck类中的equals(Objeck obj)方法
特点:不重写比较对象的地址值是否一样
在自定义的类中重写 比较的是对象的属性值是否一样
4.Date类(日期类)
特点:表示日期,特定的瞬间,可以和Long,String,Calendar互相转换.
构造方法
Date(): 创建Date对象,表示当前的系统时间
Date(long date):创建Date对象, 使用指定的毫秒值作为时间
成员方法
long getTime(): 获取Date对象中保存的时间毫秒值
void setTime(long time): 修改Date对象的时间
5.DateFormat类和SimpleDateFormat类
特点:DateFormat类是一个抽象类,不能创建对象,可以由子类创建对象调用其方法
DateFormat类成员方法:
String format(Date date): 格式化, 从Date对象转换为String对象
Date parse(String source): 解析, 从String对象转换为Date对象
SimpleDateFormat类构造方法
SimpleDateFormat(String pattern): 设置指定的日期格式,例如:(yyyy-MM-dd)
6 Calendar类(日历类)
特点;Calendar类是一个抽象类,代表日历,,提供不同国家的历法
静态方法
static Calendar getInstance(): 根据当前系统设置获取合适的Calendar对象, 表示当前系统时间
Calendar c = Calendar.getInstance(); // 代表了当前时间
静态成员变量
static int YEAR 年份
static int MONTH 月份,这里的月份是0-11,中国1-12
static int DAY_OF_MONTH 日期
static int HOUR 小时(12小时制)
static int HOUR_OF_DAY 小时 (24小时制)
static int MINITE 分钟
static int SECOND 秒
成员方法
int get(int field): 获取指定日历字段的值
void set(int field, int value): 修改指定日历字段为指定的值
void set(int year, int month, int date): 快速设置年月日
void add(int field, int amount): 调整指定日历字段的值. 正数增加, 负数减少
Date getTime(): Calendar转Date
void setTime(Date d): Date转Calendar
7 System类
静态方法
static long currentTimeMillis(): 返回当前系统时间的毫秒值
static void arrayCopy(Object src, int srcPos, Object dest, int destPos, int length): 复制源数组中指定长度个元素到一个新数组中
Object src: 源数组 (被复制的数组)
int srcPos: 源数组索引 (从源数组的哪个索引开始复制)
Object dest: 目标数组 (要复制到哪个数组)
int destPos: 目标数组索引 (指定目标数组接收元素的索引位置)
int length: 长度 (要复制的元素个数)
8 StringBuilder类
特点;字符串的拼接,长度可变的字符串容器
构造方法
StringBuilder(): 构造一个空的StringBuilder容器
StringBuilder(String str): String转StringBuilder
常用方法
StringBuilder append(任意类型): 添加任意类型数据的字符串形式, 并返回当前对象 可以链式调用append().append().append();
成员方法
String toString(): 将当前StringBuilder对象转换为String对象
9 包装类
特点:讲基本类型转换成对应的引用数据类型
byte-->Byte
short-->Short
int -->Integer
long-->Long
float-->Float
double-->Double
char-->Character
boolean-->Boolean
包装类有装箱与拆箱
装箱:
//Integer i1 = new Integer(1);
//Integer i2 = new Integer("1");
Integer i3 = Integer.valueOf(1); //使用包装类中的静态方法valueOf()
拆箱
int num = i.intValue();
自动装箱与自动拆箱
Integer i = 10; // 自动装箱: Integer i = Integer.valueOf(10);
Integer j = 20; // 自动装箱: Integer j = Integer.valueOf(20);
Integer k = i + j; // 先拆箱再装箱: Integer k = Integer.valueOf(i.intValue() + j.intValue());
包装类的常用方法:基本类型与字符串之间转换
基本类型转为String
1. 拼接空字符串:
String s = "" + 34
2. 每个包装类中的静态方法 static String toString(参数):
String s = Integer.toString(10);
3. String类中的静态方法 static String valueOf(参数):
String s = String.valueOf(10);
String转基本类型:使用每种包装类中的静态方法
static byte parseByte(String s): 将字符串参数转换为对应的byte基本类型
static short parseShort(String s): 将字符串参数转换为对应的short基本类型
static int parseInt(String s): 将字符串参数转换为对应的int基本类型
static long parseLong(String s): 将字符串参数转换为对应的long基本类型
static float parseFloat(String s): 将字符串参数转换为对应的float基本类型
static double parseDouble(String s): 将字符串参数转换为对应的double基本类型
static boolean parseBoolean(String s): 将字符串参数转换为对应的boolean基本类型
没有转char的!
day02 Collection 泛型笔记
1 Collection
特点;长度可变的容器,可以存储多个对象,只能存储引用类型元素,可以是多种类型元素,所有子类可使用顶层接口/抽闲哪个类中的共性方法
Collection接口是单列集合的顶层,有两个子接口List接口(元素存取有序,可重复,有索引),Set接口(不可重复,无索引)
成员方法
boolean add(E e): 把给定的对象添加到当前集合中
void clear(): 清空集合中所有的元素
boolean remove(E e): 把给定的对象在当前集合中删除
boolean contains(E e): 判断当前集合中是否包含给定的对象
boolean isEmpty(): 判断当前集合是否为空(没有元素)
int size(): 返回集合中元素的个数
Object[] toArray(): 把集合中的元素,存储到数组中
使用多态方式创建对象: Collection c = new ArrayList();
编译看左边, 这样只能调用Collection接口中定义的方法, 不会出现子类特有方法
2.迭代器
特点;遍历集合对象,迭代器的元素类型跟着集合走
成员方法
boolean hasNext(): 判断是否有下一个元素
E next(): 获取下一个元素
使用迭代器遍历集合的标准写法:
Collection<String> coll = new ArrayList<>();
Iterator<String> iterator = col.iterator();
while (iterator.hasNext()) {
元素类型 变量名 = iterator.next();
}
迭代器的并发修改异常
迭代过程中不要修改集合长度,否则会抛出异常 ConcurrentModificationException ,
3.增强for循环
作用:遍历集合或数组
格式:
for(元素的数据类型 变量名 : 集合或数组名){
//操作代码
}
增强for,普通for,迭代器的区别:
增强for:
优点: 获取元素很方便, 格式简单
缺点: 没有普通for中的索引, 没有迭代器对象可以进行元素的增删
应用场景: 适用于遍历获取数组和集合元素的场景
普通for:
优点: 有索引可以使用, 某些方式可以在遍历过程中增删元素
缺点: 格式繁琐
应用场景: 需要用到索引的场景
迭代器:
优点: 可以使用迭代器对象的方法操作元素
缺点: 格式繁琐
应用场景: 需要在迭代过程中增删元素的场景
4 泛型
泛型是一种未知的数据类型,定义集合时,某些方法不知道使用什么类型时可以定义在类,方法,接口中.
定义:
<E>: 声明了一个泛型 (声明了一个变量)
泛型的好处:
(1). 避免了类型转换的麻烦
(2). 将运行时的类型转换异常, 转移到了编译时期 (有利于程序员提前发现问题)
(3)定义含有泛型的类
格式:
修饰符 class 类名<代表泛型的名字> {}
创建对象时确定泛型的具体类型
(4)定义含有泛型的方法
格式:
修饰符 <代表泛型的名字> 返回值类型 方法名(参数){}
在调用方法时确定泛型的具体类型
(5)定义含有泛型的接口
格式:
修饰符 interface 接口名<代表泛型的变量> {}
1:在定义实现类时确定泛型的具体类型
2.定义实现类时仍然沿用泛型, 直到创建该实现类对象时才确定泛型的具体类型
5. 泛型通配符
作用: 不知道使用什么类型来接收时, 此时可以使用 <?> 来表示未知通配符. 扩展泛型的限制范围
注意;
1 只能接受数据,不能调用方法存储元素
2 不能闯将对象使用
3 只能作为方法参数使用(减少方法重载)
泛型的上限:
格式: 类型名称<? extends 类名> 对象名称
示例: List<? extends Number> list
作用: 只能接收泛型为该类型及其子类的对象 (Number及其子类的泛型)
泛型的下限;
格式: 类型名称<? super 类名> 对象名称
示例: List<? super Number> list
作用: 只能接收泛型为该类型及其父类型的对象 (Number及其父类的泛型)