常用工具类
Math类:
Math.abs(-10); //取绝对值
Math.ceil(12.33); //向上取整,但是结果是一个double
Math.floot(12.33); //向下取整,但是结果是一个double
Math.max(5,1); //获取两个值中的最大值
Math.pow(2,4); //求2的4次方
Math.Random(); //生成0.0到1.0之间的小数,包括0.0不包括1.0
Math.round(4.3); //对4.3四舍五入
Math.Sqrt(4); //对4开平方
Random类:
Random ran = new Random();
ran.nextInt(100); //生成0到99的随机数
System类:
System.gc(); //垃圾回收器,相当于呼喊保洁阿姨
System.exit(0); //退出JVM虚拟机
System.currentTimeMillis(); //单位毫秒 1秒等于1000毫秒
//计算从1970年1.1号午夜开始的时间,用于计算程序运行时间
在程序开始时定义一个start ,结束时定义一个end。end-strar 就是程序运行的时间。
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
//src:原数组 srcPos:原数组的起始位置 dest:目标数组
destPos:目标数组中的起始位置 length:要复制的数组元素的数量
BigInteger类:
用于超大数据运算,存储。详情查看API
BigDecimal类:
用于小数点后的精度运算。//推荐用字符串型
//或者BigDecimal bd1 = BigDecimal.valueof(2.0); BigDecimal bd2 = BigDecimal.valueof(1.1);
//除法 bd1.subtract(bd2); bd1除以bd2
Date类
导入的是util包下的,不是sql
Date date = new Date();
//空参构造器表示的是当前时间,有参传入0,表示1970-1-1 午夜0点,输出8点是因为我们在东八区。
date.getTime(); //表示获程序运行毫秒值,通过时间对象获得毫秒值
date.setTime(); //设置毫秒值,改变时间对象
DateFormat类:
DateFormat 是 SimpleDateFormat类的父类。
抽象类,不允许实例化.只提供protect 构造器,仅让子类创建对象
SimpleDateFormat类:
用来格式化Date类获得的日期。
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat();//创建日期格式化对象 输出19-7-24 上午11:37
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); //输出2019年07月24日 11:36:19
sdf.format(date); //输出日期
sdf.parse(); //将日期字符串转换成日期对象
简单案例1.算一下你来到这个世界多少天
public class BornDay {
public static void main(String[] args) throws ParseException {
//1.将生日字符串和今天字符串储存在String类型变量中
String bornDate = "1998-07-21";
String taday = "2019-7-24";
//2.定义日期格式化对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//3.将日期字符串转换成日期对象
Date date1 = sdf.parse(bornDate);
Date date2 = sdf.parse(taday);
//4.通过日期对象获取时间毫秒值
long time =date2.getTime()-date1.getTime();
//5.将两个时间毫秒值相减除以1000变成秒,在除以变成60分钟,再除以60变成小时,再除以24变成天
System.out.println("你一共活了"+time/1000/60/60/24+"天");
}
}
Calendar类:
Calendar c = Calendar.getInstance(); //父类引用指向子类对象,获得一堆时间信息
c.get() //获得时间信息
c.get(Calendar.YEAR) //调用此类中的get方法获得年
(c.get(Calendar.MONTH)+1) //获得月,但是月数从0开始计算,故加1
c.get(Calendar.DAY_OF_MONTH) //获得一个月中的第几日
c.get(Calendar.DAY_OF_WEEK) //获得星期,但是因国外周日是星期一,需制表
c.add(Calendar.YEAR,1); //对指定的字段进行加减,比如这里就是年数加1
c.set(Calendar.YEAR,2000); //修改指定字段,这里就是修改年为2000年
c.set(2000,7,8); //修改年月日 实则输出2000年8月8号 因为从0开始计月
简单实例2.获得时间信息
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
System.out.println(c.get(Calendar.YEAR)); //通过字段获得年
System.out.println(c.get(Calendar.MONTH)+1); //通过字段获得月,但是是从0开始计月
System.out.println(c.get(Calendar.DAY_OF_MONTH));//月中的第几天天
System.out.println(c.get(Calendar.DAY_OF_WEEK));//周日是第一天,周六是最后一天
System.out.println("=====================================================");
System.out.println(c.get(Calendar.YEAR)+"年"+getZero((c.get(Calendar.MONTH)+1))+"月"+
getZero(c.get(Calendar.DAY_OF_MONTH))+"日"+getweek(c.get(Calendar.DAY_OF_WEEK)));
}