包装类学习总结
由于java是一种面向对象编程语言,所以为了防止八种基本类型对这一特性造成破坏,提供8中包装类,包装类内部依旧是用基本类型存储数据。
基本类型 | 包装类 |
---|---|
int | Integer |
long | Long |
byte | Byte |
short | Short |
double | Double |
float | Float |
boolean | Boolean |
char | Character |
其中int和char的包装类名称较特殊
装箱和拆箱
装箱是指将基本类型变为包装类对象,拆箱则是指将包装类对象变为基本类型。
手动拆装箱:利用.valueof()方法和…Value()方法进行拆装箱,例如Integer.valueof()和intValue();
自动拆装箱:jdk1.5后会自动使用方法
缓存区
Byte , Short , Integer , Long四种包装类会提供一个缓存,装箱在缓存范围内的时候,每次都获得相同的对象,在范围外时,每次都会创建相同的对象。
Number类
6种数字类型的包装类都继承了Number类
BigInteger
底层使用一个int[]存储十进制中的每一位数字
常用方法
i.add(j); /加法
i.subtract(j);//减法
i.multiply(j);//乘法
i.divide(j) ; // 除法
i.compareTo(j) ;//大小比较
所有的计算都得有BigInteger之间进行
BigDecimal
可以使用BigDecimal控制小数点精度
RoundingMode.Up//之间进一
RoundingMode.DOWN //舍去多余设置
RoundingMode.HALF_UP //四舍五入
BigDecimal num = new BigDecimal("3.1415926");
num.setScale(3,RoundingMode.HALF_UP);
工具类练习
Math类
常见的方法
public static void main(String[] args) {
System.out.println(Math.PI);
System.out.println(Math.abs(-9));//绝对值
System.out.println(Math.pow(3,2));//指数
System.out.println(Math.pow(4,0.5));
System.out.println(Math.max(88,99));//最大值
System.out.println(Math.min(88,99));//最小值
System.out.println(Math.ceil(4.58));//向上取整
System.out.println(Math.floor(5.44));//向下取整
System.out.println(Math.round(5.66));//四舍五入
System.out.println(Math.random()*8);//随机数
System.out.println((Math.random()*7)+5);
}
Random类
r.nextInt(10)//在[1,,10)之间随机整数
左闭右开
TimeZone类
表示时区对象
public static void main(String[] args) {
TimeZone def = TimeZone.getDefault();
//打印当前系统默认时区
System.out.println(def.getID());
//打印偏移的小时
System.out.println(def.getRawOffset()/1000/3600);
//获取并打印所有时区
String[] ids = TimeZone.getAvailableIDs();
for(int i = 0;i<ids.length;i++){
System.out.println(ids[i]);
}
//将系统时区设置成美国纽约时区
TimeZone america = TimeZone.getTimeZone("America/New_York");
System.out.println(america);
}
Date日期类
Date date = new Date();
Date date = new Date(long);1970 long毫秒后的那个时间
long l = date.getTime();//获得1970到日期之间的毫秒数
DateFormat日期格式类
//将当前系统时间按指定格式输出
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String s = format.format(date);
System.out.println(s);
//按指定格式输入日期后输出100天后的日期
String s1 = "2024-05-20 13:14:00";
Date date1 = format.parse(s1);
Date date2 = new Date(date1.getTime() + 1000L*60*60*24*100);
String s2 = format.format(date2);
System.out.println(s2);
Calendar日历类
可以对日期中的每一项进行操作
Calendar time = Calendar.getInstance();
//对日期项进行设置
time.set(Calendar.DAY_OF_MONTH,10) ;
time.get(Calendar.DAY_OF_MONTH);
time.add(Calendar.DAY_OF_MONTH,100) ;