Java语言:Math、System、BigInteger、BigDecimal、Date、DateForamt、Calendar

Math类:

    用于数学运算的类。
    成员变量:
        public static final double PI   
        public static final double E(自然对数底数)
    成员方法:
        public static int abs(int a):绝对值
        public static double ceil(double a):向上取整
        public static double floor(double a):向下取整
        public static int max(int a,int b):最大值  min:最小值
        public static double pow(double a,double b):a的b次幂
        public static double random():随机数[0.0,1.0);
        public static int round(float a):四舍五入
        public static double sqrt(double a):正平方根


public class MathDemo {
	public static void main(String[] args) {
		System.out.println("PI:"+Math.PI);
		System.out.println("E:"+Math.E);
		System.out.println("----------------------");
		
		System.out.println("abs:"+Math.abs(-2));
		
		System.out.println("ceil:"+Math.ceil(12.34));
		
		System.out.println("floor:"+Math.floor(12.56));
		
		System.out.println("max:"+Math.max(Math.max(10, 20), 15));
		
		System.out.println("pow:"+Math.pow(5, 3));
		
		System.out.println("random:"+Math.random());//[0.0,1.0);
		System.out.println("random:"+(int)(Math.random()*100+1));//[1,100];
		
		System.out.println("round:"+Math.round(10.56));
		
		System.out.println("sqrt:"+Math.sqrt(16));
		
		
	}
}

-----------------------------------------------------------------------
结果:
PI:3.141592653589793
E:2.718281828459045
----------------------
abs:2
ceil:13.0
floor:12.0
max:20
pow:125.0
random:0.5117797003372551
random:14
round:11
sqrt:4.0

System类概述

System类包含一些有用的类字段和方法。不能被实例化。
成员方法:
       public static void gc():用于垃圾回收
       public static void exit(int status):终止当前正在运行的Java 虚拟机。参数用作状态码;根据惯例,非0的状态码表示异常终止。
       public static long currentTimeMillis():返回以毫秒为单位的当前时间
       public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length):从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。

public class SystemDemo {
	public static void main(String[] args) {
		System.out.println("程序第一步!");
		System.out.println("第二步");
		System.exit(0);
		System.out.println("三");
	}
}

----------------------------------------------------------------
结果:
程序第一步!
第二步
public class SystemDemo2 {
	public static void main(String[] args) {
		long begin=System.currentTimeMillis();
		for(int i = 0;i<50;i++) {
			System.out.print("java:"+i+"、");
		}
		System.out.println("java:50");
		long end=System.currentTimeMillis();
		System.out.println("共耗时:"+(end-begin)+"毫秒");
	}
}

--------------------------------------------------
结果:
java:0、java:1、java:2、java:3、java:4、java:5、java:6、java:7、java:8、java:9、java:10、java:11、java:12、java:13、java:14、java:15、java:16、java:17、java:18、java:19、java:20、java:21、java:22、java:23、java:24、java:25、java:26、java:27、java:28、java:29、java:30、java:31、java:32、java:33、java:34、java:35、java:36、java:37、java:38、java:39、java:40、java:41、java:42、java:43、java:44、java:45、java:46、java:47、java:48、java:49、java:50
共耗时:4毫秒

import java.util.Arrays;

public class SystemDemo3 {
	public static void main(String[] args) {
		int[] arry = { 11, 22, 33, 44, 55 };
		int[] arry2 = { 3, 4, 5, 6, 7 };
		System.arraycopy(arry, 1, arry2, 2, 2);
		System.out.println(Arrays.toString(arry));
		System.out.println(Arrays.toString(arry2));
	}
}

-----------------------------------------------------------------------
结果:
[11, 22, 33, 44, 55]
[3, 4, 22, 33, 7]


BigInteger类

BigInteger类概述:
                 可以让超过Integer范围内的数据进行运算
         构造方法:
                public BigInteger(String val)
         成员方法:
                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):返回商和余数的数组

import java.math.BigInteger;

public class BigIntegerDemo {
	public static void main(String[] args) {
		BigInteger bi = new BigInteger("100");
		BigInteger bi2 = new BigInteger("50");
		System.out.println("加:"+bi.add(bi2));
		System.out.println("减:"+bi.subtract(bi2));
		System.out.println("乘:"+bi.multiply(bi2));
		System.out.println("除:"+bi.divide(bi2));
		System.out.println("-------------");
		BigInteger[] bigarr = bi.divideAndRemainder(bi2);
		System.out.println("商:"+bigarr[0]);
		System.out.println("余数:"+bigarr[1]);
	}
}

---------------------------------------------------------------------------------
结果;
加:150
减:50
乘:5000
除:2
-------------
商:2
余数:0

BigDecimal类

由于在运算时,float类型和double很容易丢失精度;所以为了能精确的表示计算浮点数,Java提供了BigDecimal
        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):除
               public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode):商,几位小数,如何舍取

import java.math.BigDecimal;

public class BigDecimalDemo {
	public static void main(String[] args) {
		System.out.println(0.09+0.01);
		System.out.println(0.15-0.07);
		System.out.println(1.15*2.003);
		System.out.println(1.2/0.2);
		System.out.println("-------------------");
		
		BigDecimal decimal = new BigDecimal("0.09");
		BigDecimal decimal2 = new BigDecimal("0.01");
		System.out.println(decimal.add(decimal2));
		
		BigDecimal decimal3 = new BigDecimal("0.15");
		BigDecimal decimal4 = new BigDecimal("0.07");
		System.out.println(decimal3.subtract(decimal4));
		
		BigDecimal decimal5 = new BigDecimal("1.15");
		BigDecimal decimal6 = new BigDecimal("2.003");
		System.out.println(decimal5.multiply(decimal6));
		
		BigDecimal decimal7 = new BigDecimal("1.2");
		BigDecimal decimal8 = new BigDecimal("0.2");
		System.out.println(decimal7.divide(decimal8));
		
		System.out.println(decimal7.divide(decimal8, 3, BigDecimal.ROUND_HALF_UP));
	}
}

-------------------------------------------------------------------------------------------------------------
结果:
0.09999999999999999
0.07999999999999999
2.3034499999999998
5.999999999999999
-------------------
0.10
0.08
2.30345
6
6.000

Date:

Date:表示特定的瞬间,精确到毫秒。
       构造方法:
              Date():根据当前的默认毫秒值创建日期对象
              Date(long date):根据给定的毫秒值创建日期对象。
       成员方法:
              public long getTime():获取时间,以毫秒为单位
                         System.out.println(System.currentTimeMillis());   (获取当前时间,以毫秒为单位)

              public void setTime(long time): 设置时间
                        计算机起始计算时间:1970年1月1日

import java.util.Date;

public class DataDemo {
	public static void main(String[] args) {
		Date date = new Date();
		System.out.println(date);
		
		long time = 1000;
		Date date2 = new Date(time);
		System.out.println(date2);
		
		Date d = new Date();
		long time2 = d.getTime();
		System.out.println(time2);
		System.out.println(System.currentTimeMillis());
		
		System.out.println("d:"+d);
		d.setTime(1000);
		System.out.println("d:"+d);
	}
}

--------------------------------------------------------------------------------

Fri Oct 11 15:45:22 CST 2019
Thu Jan 01 08:00:01 CST 1970
1570779922360
1570779922360
d:Fri Oct 11 15:45:22 CST 2019
d:Thu Jan 01 08:00:01 CST 1970

DateForamt:

             可以进行日期和字符串的格式化和解析,但是由于是抽象类,所以使用具体子类SimpleDateForamt。

SimpleDateFormat的构造方法:
          SimpleDateFormat():默认模式
          SimpleDateFormat(String pattern):给定的模式
               年 y    月 M    日 d     时 H     分 m   秒 s

          注意:在把一个字符串解析为日期时,格式必须和给定的字符串格式匹配。

                 Date -- String (格式化,时间转字符串)
                          public final String format (Date date):
                 String -- Date (解析,字符串转时间)
                          public Date parse(String source):


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

public class SimpleDateFormatDemo {
	public static void main(String[] args) throws ParseException {
		//格式化,时间转字符串
		//默认模式
		SimpleDateFormat sdf = new SimpleDateFormat();
		Date date = new Date();
		String s = sdf.format(date);
		System.out.println(s);
		
		//给定模式
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		String s2 = sdf2.format(date);
		System.out.println(s2);
		
		//解析,字符串转时间
		String s3 = "2019-10-11 16:20";
		SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
		Date date2 = sdf3.parse(s3);
		System.out.println(date2);
	}
}

-----------------------------------------------------------------------------------------

2019/10/11 下午4:20
2019年10月11日 16:20:14
Fri Oct 11 16:20:00 CST 2019

Calendar类概述

              Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

         成员方法:
               pubic static Calendar getlnstance();
               public int get(int field);
               public void add(int field,int amount):根据给定的日历字段和对应的时间,来对当前的日历进行操作
               public final void set(int year,int month,int date);设置当前日历的年月日
 


import java.util.Calendar;

public class CalendarDemo {
	public static void main(String[] args) {
		// 其日历字段已有当前日期和时间初始化;
		Calendar rightNow = Calendar.getInstance();		//子类对象(多态)
		
		// 获取年
		int year =  rightNow.get(Calendar.YEAR);
		// 获取月
		int month = rightNow.get(Calendar.MONTH);
		// 获取日
		int date = rightNow.get(Calendar.DATE);
		
		System.out.println(year+"年"+(month+1)+"月"+date+"日");
		
		System.out.println("----------------------");
		
		//三年前的45天后
		Calendar c = Calendar.getInstance();
		c.add(Calendar.YEAR, -3);
		c.add(Calendar.DATE, 45);
		int year2 =  c.get(Calendar.YEAR);
		int month2 = c.get(Calendar.MONTH);
		int date2 = c.get(Calendar.DATE);
		
		System.out.println(year2+"年"+(month2+1)+"月"+date2+"日");
		
		System.out.println("--------------------");
		
		c.set(2008,7,8);
		year2 =  c.get(Calendar.YEAR);
		month2 = c.get(Calendar.MONTH);
		date2 = c.get(Calendar.DATE);
		
		System.out.println(year2+"年"+(month2+1)+"月"+date2+"日");
	}
}

---------------------------------------------------------------------------------------
结果:
2019年10月18日
----------------------
2016年12月2日
--------------------
2008年8月8日



 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值