工具类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包 主要处理小数前后的问题 主要用于格式

三、日期相关

  1. System类-----currentTimeMillis()方法:返回当前系统毫秒值

  2. 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后 比较时间

  1. DateFormat类

3.1所属包:java.text包

3.2继承和实现:继承java.text.Format类,实现Serializable, Cloneable接口,SimpleDateFormat类是其子类;

3.3构造方法:只有无参数构造方法,但它是抽象类,无法创建对象;

3.4通常使用其之类SimpleDateFormat构建对象,一般用于格式化时间,注意其规范列表,如下:
工具类1-包装类、数学相关、日期相关

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开始----东西方文化差异造成的

  1. TimeZone类

5.1所属包:java.util包

5.2继承和实现:直接继承Object,实现Serializable, Cloneable两个接口;

5.3构造方法:只有无参数构造方法

5.4主要目的:操作时区的