0815总结
Math类
Math 类包含用于执行基本数学运算的方法(数学类)
Math 类没有构造方法,全是静态方法,一般在开发中很少使用到。
常规的一些方法
产生随机数:random() 【大于等于 0.0 且小于 1.0 的伪随机 double 值】
向上取整:ceil(double a)如:【1.2 ==> 2 1.7 ==>2】
求最小值:min(int a,int b)
求最大值:max(int a,int b)
获取绝对值:abs(double a)
求反余弦值:acos(double a)
求立方根:cbrt(double a)
求幂函数:exp(double a)
返回第一个参数的第二个参数次幂的值:pow(double a,double b)
返回正的平方根:sqrt(double a)
System
System 类包含一些有用的类字段和方法,它不能被实例化。(没有构造)
常规的常量
标准的输入流:System.in
标准的输出流:System.out
在控制台红色的打印:System.err.println(一般用于异常的输入)
获取系统当前的毫秒值:currentTimeMillis()【是从 1970-01-01 开始计算】
终止 jvm 运行:exit(int status) 【参数是0表示正常终止,非0非正常终止】
回收垃圾:gc()
开发里常常遇到的 gc 问题:内存溢出(内存已经满了,没有空间来开辟新的东西了)
内存泄漏:(该回收的对象没有被回收)
gc:垃圾回收器;没有任何引用的对象会被回收
gc的原则:
1、计数算法:当这个对象被持有引用时会+1,这个对象的计数是 0 时表示其可以被回收了
2、可欲达算法:如果想要一个变量快速回收:使用弱引用,或者软引用;如果想快速回收,使用强引用(static变量就是强引用,最难被回收)
垃圾何时回收:1、gc()2、当堆内存快满的时候
被回收的东西:1、静态 2、多线程 3、强引用 4、监听器 5、如果不用了 就设置为null
Date
是一个时间对象,需要进行导包 java.util.Date
构造方法
Date(): 返回的是当前系统的时间
Date(long date):传入的是毫秒值(去换算)
Date date=new Date(1000);
//结果是:Thu Jan 01 08:01:00 CST 1970
常规的方法
设置时间毫秒值:setTime()
得到设置的时间毫秒值:getTime()
DateFormat
对时间进行格式化,是一个时间格式化类,不能够被实例化
SimpleDateFormat
格式化的方法:
1、format(date)【返回的是一个字符串】
new simpleDateFormat().format(Date)
//把Date 对象转换为字符串格式
2、parse(String text)【把时间字符串转换成Date对象】
new simpleDateFormat().parse("2018-08-15")
//把标准的时间字符串格式 转换成一个Date对象
获取当前Date毫秒值:
1、通过Date 对象
new Date().getTime()
2、获取系统当前的毫秒值
System.currentTimeMillis()
Calendar(日历对象)
导包:java.util.Calendar
Calendar 类是一个抽象类,不能被实例化
通过调用获取 Calendar
Calendar.getInstance();
通过方法来获取 Calendar
get(int field)
field的一些常量
获取当前的年份:Calendar.YEAR
获取月份:Calendar.MONTH(默认是0-11月,故需要+1)
获取日:Calendar.DAY_OF_MONTH
获取小时:Calendar.HOUR_OF_DAY
获取分钟:Calendar.MINUTE
获取秒:Calendar.SECOND
获取星期几:Calendar.DAY_OF_WEEK(获取星期的时候需要 -1)
获取当前的时区:cla.getTimeZone()
表示上午:Calendar.AM
表示下午:Calendar.PM
设置时间
public final void set(int year,int month,int date,int hourOfDay,int minute){
}