黑马程序员技术交流社区
标题:
学习经历day01~02
[打印本页]
作者:
木木鱼
时间:
2018-11-14 17:00
标题:
学习经历day01~02
day01
常用API
Objcet类 :根类 ,所有类的父类
所有类的对象都可以使用Object类中定义的方法
toString方法的作用
equals方法的作用
注意使用重写的 equals() 方法比较多个对象是否相等
时间和日期相关类 Date
// 构造方法
Date(): 创建Date对象, 表示当前系统时间
Date(long date): 创建Date对象, 使用指定的毫秒值作为时间
// 常用成员方法
long getTime(): 获取Date对象中保存的时间毫秒值
void setTime(long time): 修改Date对象的时间
long
\ SimpleDateFormat
Date -------------------- String
/
Calendar
DateFormat抽象类: 用于格式化和解析时间
String format(Date date): 格式化, 从Date对象转换为String对象Date parse(String source): 解析, 从String对象转换为Date对象
SimpleDateFormat类
// 构造方法
SimpleDateFormat(String pattern): 用给定的模式和默认语言环境的日期格式符号创建对象
Calendar类
// 静态方法
static Calendar getInstance(): 根据当前系统设置获取合适的Calendar对象, 表示当前系统时间
// 获取日历对象的示例
Calendar c = Calendar.getInstance(); // 代表了当前时间
System类
System类: currentTimeMillis()和arrayCopy()方法
StringBuilder类
String是不可变的, 使用加号进行字符串拼接, 会创建很多额外的对象, 浪费内存空间
StringBuilder类: 可变字符序列, 可以高效拼接字符串. 底层使用数组保存
包装类: 基本数据类型对应的引用数据类型
基本类型
对应的包装类(位于java.lang包中)
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();
day02
泛型
泛型定义总结:
定义在类上的泛型:
有效范围: 整个类中都有效
何时确定具体类型: 创建该类对象时确定泛型的具体类型
定义在方法上的泛型:
有效范围: 方法中(包括返回值类型和参数类型)有效
何时确定具体类型: 调用方法传参时确定泛型的具体类型
定义在接口上的泛型:
有效范围: 接口中
何时确定具体类型:
1. 子接口或实现类定义时确定泛型的具体类型
2. 创建实现类对象时确定泛型的具体类型
泛型的好处:
1. 避免了类型转换的麻烦
2. 将运行时的类型转换异常, 转移到了编译时期 (有利于程序员提前发现问题)
Collection类
能够说出集合与数组的区别
1. 集合长度可变, 数组长度一旦创建不可改变
2. 集合能存多种引用类型, 数组可以存一种基本和引用类型
Collection集合的常用功能
添加: boolean add(E e)
删除: boolean remove(E e)
清空: void clear()
长度: int size()
判断是否包含: boolean contains(E e)
判断集合是否为空: boolean isEmpty()
转数组: Object[] toArray()
获取迭代器对象: Iterator<E> iterator()
迭代器
迭代器的原理:
迭代器有一个指针(其实就是个变量, 保存索引值), 最初指向集合的 0 位置
Iterator<元素类型> it = 集合对象.iterator();
while (it.hasNext()) {
元素类型 变量名 = it.next();
}
加强for循环
集合.for
for (元素类型 变量名 : 集合名) {
// 使用变量
}
for (元素类型 变量名 : 数组名) {
// 使用变量
}
增强for, 普通for, 迭代器的区别:
增强for:
优点: 获取元素很方便, 格式简单
缺点: 没有普通for中的索引, 没有迭代器对象可以进行元素的增删
应用场景: 适用于遍历获取数组和集合元素的场景
普通for:
优点: 有索引可以使用, 某些方式可以在遍历过程中增删元素
缺点: 格式繁琐
应用场景: 需要用到索引的场景
迭代器:
优点: 可以使用迭代器对象的方法操作元素
缺点: 格式繁琐
应用场景: 需要在迭代过程中增删元素的场景
泛型上下限
上限: <? extends E> 可以接收泛型为E类型或E类型的子类类型
下限: <? super E> 可以接收泛型为E类型或E类型的父类类型
泛型通配符
<?>
<? extends E>
<? super E>
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2