工具类1-包装类、数学相关、日期相关
一、包装类
1.基本数据类型对应的包装类(8个)
byte—Byte
8位
1字节
short—Short
16位
2字节
int—Integer
32位
4字节
long—Long
64位
8字节
float—Float
32位
4字节
double—Double
64位
8字节
Boolean—Boolean
取值是true/false 判断用的
char—Character
16位
2字节
2.总结
1.除了int和char外,剩下的六个对应的包装类都是首字母大写;
2.位于的包:都java.lang包,使用时不用导包;
3.与数字相关的6个类都继承了java.lang.Number,与数字无关的两个类直接继承java.lang.Object;
4.都实现了Serializable和Comparable< 对应的泛型>两个接口,即序列化接口和可比较接口;
5.构造方法
5.1 除了Character类以为,其他7个都有带String参数的构造方法; 5.2
Float类有带double参数的构造方法;
5.3 八个类型的构造方法都有带自己对应基本数据类型的构造方法;
6创建对象
6.1根据实际情况,选用合适的构造方法创建对象,本对象存于堆内存中;
6.2直接赋对应基本数据类型的值创建对象,本对象存于方法区的常量池中;
7.常见笔试题
==与equals()方法的区别
1.比较基本数据类型时,比较的是值的大小;比较引用数据类型时,比的是引用数据类型的引用地址;equals()方法继承Object的方法,每一个引用类型都可以调用,其默认方法与是一致的,但是包装类中的equals()方法被重写了,所以比较的数值;
2.Integer加载时,有一个静态数组范围-128至127,如果超出范围就new一个新的Integer对象,可能会导致调用==比较时出现false的情况。
二、数学相关
1.Math类
1.1所属包:java.lang包,使用时不用导包,直接继承Object,两个私有属性PI—圆周率π和e—自然底数;
1.2构造方法:构造方法被private修饰,未封装,不能直接创建对象;
1.3方法:都是静态方法,不用创建对象,可以直接类名调用;
1.4主要方法:
1.4.1abs—绝对值
1.4.2 ceil floor
rint round 取临近整数
1.4.3max min 求最大值最小值
1.4.4 pow(a,b) a的b次方
sqrt(a) 获取平方根
1.4.5 random() 取随机数 [0.0-1.1)
等等
2.Random类
2.1所属包:java.util包
2.2构造方法:无参数构造方法,带一个long类型的构造方法
2.3方法:取对应类型的随机数
3.。 UUID类----不常用
3.1所属包:java.util包
3.2构造方法:带两个long类型参数的构造方法
4.。 BigInteger类----不常用
4.1所属包:java.math包 主要用于整数数据太大无法存下
5.BigDecima类----不常用
5.1所属包: java.math包 主要用于小数数据太大无法存下
6.DecimaFormat类----不常用
6.1所属包:java.text包 主要处理小数前后的问题 主要用于格式
三、日期相关
-
System类-----currentTimeMillis()方法:返回当前系统毫秒值
-
Date类
2.1所属包:java.util包
2.2继承实现关系:直接继承Object,实现Serializable, Cloneable, Comparable< Date>接口;
2.3构造方法:通常使用无参数构造方法,剩余的构造方法都被取代,不建议使用;
2.4常用方法
2.4.1before() after()
判断时间先后
2.4.2setTime() getTime()
得到时间/输入时间
2.4.3compareTo()
-1前 0相等 +1后 比较时间
- DateFormat类
3.1所属包:java.text包
3.2继承和实现:继承java.text.Format类,实现Serializable, Cloneable接口,SimpleDateFormat类是其子类;
3.3构造方法:只有无参数构造方法,但它是抽象类,无法创建对象;
3.4通常使用其之类SimpleDateFormat构建对象,一般用于格式化时间,注意其规范列表,如下:
4.Calendar类
4.1所属包:java.util包
4.2继承和实现:直接继承Object,实现Serializable, Cloneable, Comparable< Calendar>三个接口;
4.3构造方法:构造方法私有化,通过静态方法创建对象
4.4常用方法
4.4.1before() after()
判断时间先后
4.4.2setTime() getTime()
得到时间/输入时间
注意month是从0开始----东西方文化差异造成的
- TimeZone类
5.1所属包:java.util包
5.2继承和实现:直接继承Object,实现Serializable, Cloneable两个接口;
5.3构造方法:只有无参数构造方法
5.4主要目的:操作时区的