java-Math,Random,System,BigInteger,BigDecimal,Data,simpleDateFormat,Calendar类

Math类的概述和使用

-概述:Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数

-成员方法:

    * public static int abs(int a)               //返回a的绝对值
    * public static double ceil(double a)     //向上取整,返回一个大于a的最小double值    ceil - 天花板
    * public static double floor(double a)   //向下取整,返回一个小于a的最大double值    floor - 地板
    * public static int max(int a,int b) min自学      //返回a,b中的较大的那个数
    * public static double pow(double a,double b)       //返回a的b次幂
    * public static double random()              //返回带正号的double值,该值在0.0-1.0之间,且不为0或1
    * public static int round(float a)              //返回最接近a的int数
    * public static double sqrt(double a)
      //返回正确舍入的a的正平方根

57.Random类的概述和使用

-概述:此类用于产生随机数如果用相同的种子创建两个 Random 实例

-构造方法:

    * public Random()
    * public Random(long seed)      //使用单个long种子创建新的随机数生成器

-成员方法:

    * public int nextInt()       // 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int
    * public int nextInt(int n)       //返回一个伪随机数,它是取自此随机数生成器序列的在 0(包括)和指定值(不包括)之间均匀分布的 int

58.System类的概述和使用

-概述:System 类包含一些有用的类字段和方法它,不能被实例化(构造方法私有)

-成员方法:

    * public static void gc()              //运行垃圾回收器
    * public static void exit(int status)      //终止当前正在运行的java虚拟机
    * public static long currentTimeMillis()         //返回以毫秒为单位当前时间(当前时间与协调世界时1970年1月1日午夜之间的时间差)
    * pubiic static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) //从指定原数组复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束

59.BigInteger类的概述和使用

-概述:可以让超过Integer范围内的数据进行运算

-构造方法:* public BigInteger(String val)       //将字符串转换为BigInteger类

-成员方法:

    * public BigInteger add(BigInteger val)        //+
    * public BigInteger subtract(BigInteger val)   //-
    * public BigInteger multiply(BigInteger val)   //*
    * public BigInteger divide(BigInteger val)       //除
    * public BigInteger[] divideAndRemainder(BigInteger val)  //返回包含 (this / val)后跟(this % val)的两个BigInteger的数组

package javademo;

import java.math.BigInteger;

public class demo7 {

	public static void main(String[] args) {
		BigInteger b1 = new BigInteger("100");
		BigInteger b2 = new BigInteger("2");
		
		System.out.println("和:"+b1.add(b2));
		System.out.println("差:"+b1.subtract(b2));
		System.out.println("积:"+b1.multiply(b2));
		System.out.println("商:"+b1.divide(b2));
		BigInteger[] b3 = b1.divideAndRemainder(b2);      //返回b1/b2的值和b1%b2的余数
		for (int i = 0; i < b3.length; i++) {
			System.out.println(b3[i]);
		}
	}
}

60.BigDecimal类的概述和使用

-概述:由于在运算的时,float类型和double很容易丢失精度,所以,为了能精确的表示计算浮点数,Java提供了BigDecimal,传入不可变的任意进度的有符号十进制数

-构造方法:* public BigDecimal(String val)   
-成员方法:  

    * public BigDecimal add(BigDecimal augend)
    * public BigDecimal subtract(BigDecimal subtrahend)
    * public BigDecimal multiply(BigDecimal multiplicand)
    * public BigDecimal divide(BigDecimal divisor)

package javademo;

import java.math.BigDecimal;

public class demo8 {

	public static void main(String[] args) {
    System.out.println(2.0-1.1);		           //精度丢失

	BigDecimal b1 = new BigDecimal(2.0);
	BigDecimal b2 = new BigDecimal(1.1);
	System.out.println(b1.subtract(b2));            //精度丢失
	
	BigDecimal b3 = new BigDecimal("2.0");      //将想要处理的小数转换为字符串
	BigDecimal b4 = new BigDecimal("1.1");
	System.out.println(b3.subtract(b4));
	
	BigDecimal b5 = BigDecimal.valueOf(2.0);   
	BigDecimal b6 = BigDecimal.valueOf(1.1);
	System.out.println(b5.subtract(b6));
	}
}

61.Data类的概述和方法使用

-概述:类 Date 表示特定的瞬间,精确到毫秒

-构造方法:

    * public Date()            //分配Date对象并初始化此对象,以分配它的时间(精确到毫秒)
    * public Date(long date)
  

-成员方法:

    * public long getTime()         //返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒
    * public void setTime(long time)      //设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点

62.simpleDateFormat类的概述和方法使用

-DateFormat类的概述: DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。是抽象类,所以使用其子类SimpleDateFormat,抽象类无法被实例化

-概述:SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化

-日期和时间模式:

日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 'A''Z''a''z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。"''" 表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在解析时与输入字符串进行匹配。

定义了以下模式字母(所有其他字符 'A''Z''a''z' 都被保留)

字母日期或时间元素表示示例
GEra 标志符TextAD
yYear1996; 96
M年中的月份MonthJuly; Jul; 07
w年中的周数Number27
W月份中的周数Number2
D年中的天数Number189
d月份中的天数Number10
F月份中的星期Number2
E星期中的天数TextTuesday; Tue
aAm/pm 标记TextPM
H一天中的小时数(0-23)Number0
k一天中的小时数(1-24)Number24
Kam/pm 中的小时数(0-11)Number0
ham/pm 中的小时数(1-12)Number12
m小时中的分钟数Number30
s分钟中的秒数Number55
S毫秒数Number978
z时区General time zonePacific Standard Time; PST; GMT-08:00
Z时区RFC 822 time zone-0800

以下是美国语言环境解释日期和时间模式:

日期和时间模式结果
"yyyy.MM.dd G 'at' HH:mm:ss z"2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy"Wed, Jul 4, '01
"h:mm a"12:08 PM
"hh 'o''clock' a, zzzz"12 o'clock PM, Pacific Daylight Time
"K:mm a, z"0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa"02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z"Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ"010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"2001-07-04T12:08:56.235-0700

-构造方法:

    * public SimpleDateFormat()          
    * public SimpleDateFormat(String pattern)    //用给定的模式构造simpleDateFormat对象

-成员方法:

    * public final String format(Date date)    //将给定的date格式化为日期/时间字符串
    * public Date parse(String source)      //解析字符串中的文本,生成date

package javademo;

import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class demo9 {

	public static void main(String[] args) throws ParseException {
		Date d = new Date();                  //获取当前时间对象
		System.out.println(d);                                     //输出当前日期
		
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");   //创建日期格式化类对象
		System.out.println(sdf.format(d));              //将日期对象转化为字符串
		
		String date = "2008/12/12 08:08:20";        //设置字符串,字符串内容要符合规定
		Date d1 = sdf.parse(date);                              //将字符串转换为date对象,需要抛出异常
		System.out.println(d1);                                   //输出Date对象d1
	}

}

63.Calendar类的概述和方法使用

-概述:Calendar是一个抽象类,它为特定瞬间与一组诸如YEARMONTHDAY_OF_MONTHHOUR等日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法

-成员方法:

    * public static Calendar getInstance()         //使用默认时区和语言环境获得一个日历
    * public int get(int field)                                //返回给定日历字段的值

    * public void add(int field,int amount)         //对指定的字段执行+或-操作
    * public final void set(int year,int month,int date)     //修改指定字段

package javademo;

import java.io.ObjectInputStream.GetField;
import java.util.Calendar;

public class demo_Calendar {

	public static void main(String[] args) {
		Calendar c = Calendar.getInstance();            //父类引用指向子类对象
		System.out.println(c.get(Calendar.YEAR));     //通过字段获得年
		System.out.println(c.get(Calendar.MONTH));  //通过字段获得月,但是月是从0开始编号的
		System.out.println(c.get(Calendar.DAY_OF_MONTH));  //月中的第几天
		System.out.println(c.get(Calendar.DAY_OF_WEEK));     //每周的第几天,周日是第一天,周六是最后一天
		System.out.println("----------------");
		c.add(Calendar.YEAR, 1);             //对指定的字段执行+或-操作
		System.out.println(c.get(Calendar.YEAR));     
		System.out.println("----------------");
		c.set(Calendar.YEAR, 1998);         //修改指定字段
		System.out.println(c.get(Calendar.YEAR));    
	}

}

-案例:输入一个年份判断是否是闰年

package test;

import java.util.Calendar;
import java.util.Scanner;

public class demo17 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int year = sc.nextInt();
		Calendar c = Calendar.getInstance();
		c.set( year,2,1);
		c.add(Calendar.DAY_OF_MONTH, -1);
		if(c.get(Calendar.DAY_OF_MONTH) == 29){
			System.out.println("闰年");
		}else{
			System.out.println("false");
		}
	}
/*
 * 1.输入年Scanner
 * 2.创建Calendar对象
 * 3.通过set方法将输入的年设置为那一年的3月1日
 * 4.将日向前减一位
 * 5.若日为28,返回true,否则false
 * */
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顾十方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值