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