学习java第十三天
Math类:包含用于执行基本数学运算的方法
不需要导包
常规的一些方法:
- public static double abs(double a) 获取绝对值
- public static double acos(double a) 求反余弦值
- public static double cbrt(double a) 求立方根
- public static double ceil(double a) 向上取整
- public static double floor(double a) 向下取整
- 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类:
System.in:标准的输入流
System.out:标准的输出流
System.err:错误输出流,(输出的文字是其他颜色的)
System常用的方法:
- public static long currentTimeMillis() 获取系统当前的毫秒值 是从 1970 01-01 开始计算
- public static void exit(int status) 终止 jvm 运行 参数是0表示正常终止, 非0非正常终止.
- public static void gc() 回收垃圾
垃圾回收器:
没有任何引用的对象的会被回收
回收的两种算法:
1、计数算法:这个对象被持有引用时都会+1,为0时被回收;
2、可欲达算法:
有链接关系(对象被引用)的都不会被回收
如果想一个变量快速回收,使用弱引用或者软引用。如果不想被快速回收,使用强引用, (使用静态static修饰 最难被回收。)
编程中尽量不要使用 静态 多线程 强引用 监听器,在实际的项目中较多的占用内存,影响性能,如果不用了,直接置为null最快情况当前占用的内存
什么情况回收:
- gc() 会被回收
- 当 堆内存快满的时候,也会去回收这个
Date类:
导包:java . util.Date
构造方法:
- 无参 public Date() 返回的是当前系统的时间
- 有参 public Date(long date) 传入的是长整形,毫秒值
获取当前Date毫秒值
- 第一种通过Date 对象 new Date().getTime()
- 获取系统当前的毫秒值: System.currentTimeMillis()
常用方法:
- public long getTime() 获取设置的时间毫秒值
- public void setTime(long time) 设置时间毫秒值
DateFormat 类 (抽象类)
是一个时间格式化类 , 不能够被实例化
但是有一个子类 SimpleDateFormat
SimpleDateFormat类:
public String format(date) : 返回的是一个字符串,日期格式化的方法
public Date parse(String text) :把时间字符串转换成Date对象,需要处理ParseException异常。
Calendar类:(抽象类)
日历对象,不能够被实例化
导包 java.util.Calendar
可以通过调用 Calendar . getInstance(); 获取 Calendar方法、属性
常量:
- 获取当前的年份 Calendar.YEAR
- 获取月份 Calendar.MONTH 这个月份需要+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 int set(int field)
public final void set(int year, int month, int date, int hourOfDay, int minute):设置时间
public final void setTime(Date date):使用给定的 Date 设置此 Calendar 的时间。
总结:
到这里,将近学习完java基础进程的一半了,记录的方法的也是有一堆了。学到这个日期类的,不明白 既然有DateFormat类(抽象类)和SimpleDateFormat类(该子类),子类的方法是不是有点少?为什么DateFormat类不是普通类,这样直接调用就好了呢?