[笔记] Java基础(6)-数学计算与日期

201 阅读2分钟

1. Math类

  • Math类:java.lang.Math
  • Math类的方法都为静态,用于基本的数学运算
  • static int abs(int a):取绝对值
  • static double ceil(double a):向上取整
  • static double flor(double a):向下取整
  • static int max(int a, int b):返回a、b的最大值
  • static int min(int a, int b):返回ab的最小值
  • static double pow(double a, bouble b):返回ab次方
  • static double random():返回[0,1)之间的随机数
  • static int round(float a):四舍五入
  • static double sqrt(double a):返回a的平方根

2. Random类

  • Random类:java.util.Random
  • Random():创建新的伪随机数生成器,默认使用系统的纳秒时间作为种子
  • Random(long seed):使用seed作为种子创建伪随机数生成器
  • int nextInt():生成int取值范围的伪随机数
  • int nextInt(int n):生成[0,n)范围的伪随机数

3. BigInteger类

  • BigInteger类:java.math.BigInteger
  • 可用于超过longInteger范围的数据运算
  • BigInteger(String val):使用数值字符串构造新对象
  • BigInteger add(BigInteger val):加法运算
  • BigInteger subtract(BigInteger val):减法运算
  • BigInteger multiply(BigInteger val):乘法运算
  • BigInteger divide(BigInteger val):除法运算
  • BigInteger[] divideAndRemainder(BigInteger val):除法运算,返回商和余数组成的数组

4. BigDecimal类

  • BigDecimal类:java.math.BigDecimal
  • 用于精确计算浮点数
  • BigDecimal(String val):使用数值字符串构造新对象;也有使用double类型的构造器,但如果使用double类型的构造器会存在精度丢失
  • BigDecimal add(BigDecimal val):加法运算
  • BigDecimal subtract(BigDecimal val):减法运算
  • BigDecimal multiply(BigDecimal val):乘法运算
  • BigDecimal divide(BigDecimal val):除法运算
  • static BigDecimal valueOf(double val):将double转为BigDecimal对象,底层先调用toString方法再使用String参数的构造器创建BigDecimal对象

4. Date类

  • Date类:java.util.Date
  • 大部分方法已经被Calender类的方法取代
  • Date():无参构造,存储当前时间的毫秒值
  • Date(long i):构造毫秒值为i的对象,以1970-01-01 00:00:00开始计算
  • long getTime():返回对象的时间毫秒值
  • void setTime():设置对象的时间毫秒值

5. SimpleDateFormat类

  • SimpleDateFormat类:java.text.SimpleDateFormat
  • 继承于DateFormat
  • SimpleDateFormat(String str):构造日期格式化对象,如:yyyy-MM-dd HH:mm:ss.SSS
  • String format(Date d):返回按SimpleDateFormat传入格式的日期字符串
  • Date parse(String source):将source字符串转化为Date对象

6. Calendar类

  • Calendar类:java.util.Calendar
  • static Calendar getInstance():返回子类对象
  • int get(int field):根据field获取指定的值
    • Calendar.YEAR:年份数据
    • Calendar.MONTH:月份数据,月份从0开始表示1月
    • Calendar.DAY_OF_MONTH:月中的第几天
    • Calendar.DAY_OF_WEEK:星期中的第几天,周日为第一天
  • void add(int field, int amount):将field指定的值加amount
  • void set(int field, int val):将field指定的值设置为val
  • void set(int year, int month, int day):设置年、月、日
    • 获取任意年为平年或闰年的方法:将Calendar对象设置为该年的3月1日,再使用add()方法向前减1,判断DAY_OF_MONTH29还是28