API简介(2)
1. Date日期类
代表了当前系统的当前此刻日期信息对象。
需要导入 java.util.Date 包
-
常用构造器
public Date() public Date(long time)
-
方法
long time = d.getTime(); - 使用时间毫秒值返回从1970-01-01 00:00:00走到此刻的总的时间毫秒值
-
Java记录时间的两种方式
- 可以直接用Date日期类对象记录:Date d = new Date();
- 可以直接使用时间毫秒值:从1970-01-01 00:00:00走到此刻的总的时间毫秒值
2. DateFormat日期格式化
-
作用
- 可以把日期对象或者时间毫秒值转换成我们喜欢的字符串时间格式。
- 也可以把字符串时间解析成日期对象。
需要导入 java.text 包,该类是抽象类,无法直接使用,需要用它的子类: SimpleDateFormat(简单日期格式化对象)
-
构造器
public SimpleDateFormat(String pattern(定制日期格式));
-
方法
public String format(Date d):把日期对象转换成格式化的字符串时间返回 public String format(Object time):把时间毫秒值转换成格式化的字符串时间返回 public Date parse(String time):把字符串的时间解析成日期对象
3. Calendar日历类
Calendar代表的是当前系统此刻时间对应的日历对象。是一个抽象类。
-
Calendar创建日历对象的方式
public static Calendar getInstance():直接返回一个日期对象。 -
方法
public int get(int field):根据参数取日期信息 public Date getTime() : 拿日期的此刻日期对象 public long getTimeInMillis() : 拿此刻时间毫秒值 public void add(int field, int amount):让日历中的某个信息多走一个值
4. System系统类
- System代表了当前系统。
- 方法
public static long currentTimeMillis():获取系统当前此刻的时间毫秒值! public static void exit(int status):终止当前正在运行的 Java 虚拟机(0代表正常结束,非0代表异常结束) public static void arraycopy(Object src , int srcPos ,Object dest, int destPos, int length):数组拷贝,数组复制。
5. BigDecimal类
BigDecimal通常可以用于较大数据的运算,尤其适合做double类型数据的运算,可以避免数据运算失真的问题。
-
方法
public BigDecimal add(BigDecimal value); 加法 public BigDecimal subtract(BigDecimal value); 减法 public BigDecimal multiply(BigDecimal value); 乘法 public BigDecimal divide(BigDecimal value); 除法 public double doubleValue():把大数据转换回double类型。
-
注意
-
创建大数据对象建议用:
BigDecimal a1 = BigDecimal.valueOf(a);(**不要new对象**)
-
- 2.大数据对象可以保证精确运算,运算完毕以后还是要回到double类型的。
6. StringBuilder和StringBuffer
builder为线程不安全,性能好. buffer为线程安全,性能差. 其余用法完全一致
很适合做字符串的拼接操作,性能好,代码优雅!建议使用!
-
方法
.append(); 可以链式拼接 .insert(offset: , str: ); 指定位置插入内容 .delete(index, index); 删除指定区间字符,包前不包后 .deleteCharAt(index); 根据索引值删除字符 .reverse(); 内容反转
7. 包装类
- 是基本数据类型的包装
- 基本数据类型 ==> 包装类
byte ==> Byte
short ==> Short
int ==> Integer(特殊)
long ==> Long
float ==> Float
double ==> Double
char ==> Character(特殊)
boolean ==> Boolean - 把字符串类型的数字转化成对应的基本数据类型的值
- 包装类.valueOf("字符串数字"):建议方法
泛型
-
概述
- 泛型:其实就是一个标签: <数据类型>
- 泛型的作用:可以约束在编译阶段只能操作某种数据类型
- 注意:泛型只能约束编译阶段。
-
使用泛型的优势
- 如果不使用泛型,在运行阶段做类型转换的时候,可能出现类型转换异常!
- 加入了泛型以后,类型在编译阶段就确定了,之后就永远不会出现类型转换异常。
-
定义泛型类
泛型类的概念:使用了泛型的类就是泛型类。
-
格式
修饰符 class 类名称<泛型变量>{ } 泛型变量: 用于接收真实的数据类型 规范取名: E,T,K,V
-
定义泛型方法
泛型方法可以实现功能的扩展性,可以做通用技术功能。
-
格式
修饰符 <泛型变量> 返回值类型 方法名称(形参列表){ }
-
定义泛型接口
泛型接口:使用了泛型的接口就是泛型接口。
-
格式
修饰符 interface 接口名<泛型变量>{ }
-
泛型通配符
通配符(?) 可以代表一切类型,用在使用泛型的使用。
E , T , K , V也可以代表一切类型,但是它是用在定义泛型的时候!
-
泛型的上下限
// 上限 ? extends Car ( ?必须是继承了Car或者Car本身) // 下限 ? super Car ( ?必须是Car的父类,或者Car本身)
Collection集合
是Java中集合的代表类,所有单列集合的祖宗类
-
Collection<E>(接口) 体系及特点
- Set<E>(接口): 添加的元素是 无序 不重复 无索引的
- HashSet<E>(实现类): 添加的元素是 无序 不重复 无索引的
- LinkedHashSet<E>(实现类): 添加的元素是 有序 不重复 无索引的
- HashSet<E>(实现类): 添加的元素是 无序 不重复 无索引的
- List<E>(接口): 添加的元素是 有序 可重复 有索引的
- LinkedList<E>(实现类): 添加的元素是 有序 可重复 有索引的
- ArrayList<E>(实现类): 添加的元素是 有序 可重复 有索引的
- Set<E>(接口): 添加的元素是 无序 不重复 无索引的
Collection的功能是一切集合都可以直接使用的
-
常用API
public boolean add(E e) : 把给定的对象添加到当前集合中 。 public void clear() :清空集合中所有的元素。 public boolean remove(E e) : 把给定的对象在当前集合中删除。 public boolean contains(Object obj) : 判断当前集合中是否包含给定的对象。 public boolean isEmpty() : 判断当前集合是否为空。 public int size() : 返回集合中元素的个数。 public Object[] toArray() : 把集合中的元素,存储到数组中