【java】Maths类、Random类、System类、BigInteger类、BigDecimal类、Date类、SimpleDateFormat类

一、Maths类

1、概述

java.lang

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

2、成员变量

PI:3.145926

3、成员方法

    * public static int abs(int a):取绝对值

    * public static double ceil(double a):ceil天花板,获取向上取整,但结果是double值

    * public static double floor(double a):floor地板,获取向下取整,但结果是double值

    * public staticint max(int a,int b):获取两个值中的最大值

    * public staticint min(int a,int b):获取两个值中的最小值

    * public static double pow(double a,double b):求a^b,指数运算

    * public static double random():生成0.0-1.0之间的随机小数,包括0.0,不包括1.0

    * public static int round(float a):四舍五入,得到的是一个整数,参数为double的也可以

    * public static double sqrt(double a):取根号开平方,返回小数

注意:以上所有成员方法都是静态的,构造方法会被私有(不让其他类来创建该类对象)


二、Random类

1、java.util,父类为Object类,导包

2、功能

    *  此类用于产生随机数如果用相同的种子创建两个 Random 实例,

    *  则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。

3、构造方法

    * public Random():创建一个新的随机数生成器,参数传递的是纳秒值(种子数),每次(每纳秒)运行都会得到不同的值

    * public Random(long seed):使用单个long种子创建一个新的随机数生成器,种子不同生成的随机数是不同的(不用管内部机制比较复杂对开发没什么帮助)

4、成员方法

    * public int nextInt():返回任意int型随机数

    * public int nextInt(int n)(重点掌握):返回[0,n)(左闭右开)区间内的Int值。

import java.util.Random;
public class Demo2_Random {
	public static void main(String[] args) {
		Random r = new Random();
		/*int x = r.nextInt();
		
		System.out.println(x);*/
		
		for(int i = 0; i < 10; i++) {
			//System.out.println(r.nextInt());
			System.out.println(r.nextInt(100));			//要求掌握,生成在0到n范围内的随机数,包含0不包含n
		}
				
		int a = r2.nextInt();
		int b = r2.nextInt();
		
		System.out.println(a);
		System.out.println(b);*/
	}

}

三、System类:System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。

1、java.lang,父类为Object,final类(不能有子类)

2、不能被实例化(构造方法被私有,成员方法均为静态的直接类名调用即可)

3、在System类提供的设施中,有标准输入、标准输出和错误输出流

4、成员方法

  • in:标准输入流(键盘输入)
  • out:标准输出流(显示器)
  • err:标准错误输出流(显示器)。

 例如: System.out.println(“Test”);

    该行代码的作用是将字符串”Test”输出到系统的标准输出设备上,也就是显示在屏幕上。

    后续在学习完IO相关的知识以后,可以使用System类中的成员方法改变标准输入流等对应的设备,例如可以将标准输出流输出的信息输出到文件内部,从而形成日志文件等。

5、成员方法

1)public static void gc():运行垃圾回收器,手动清扫

注意:在一个源文件中不允许出现两个public类,会抢占公共资源,一般建议拥有主方法的类为public

2)public static void exit(int status):终止当前正在运行的java虚拟机

根据惯例,非0状态是异常终止(扣电池),0是正常终止

3)public static long currentTimeMills():返回以毫秒为单位的当前时间,计算程序运行时间

返回:当前时间与谢天世界时1970年1月1日午夜之间的时间差

4)pubiic static void arraycopy(Object src, int srcPos,Object dest, int destPos, int length) :数组拷贝

src--被拷贝的数组,dest--拷贝到哪

从制定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束

System.arraycopy(src, 0,dest, 0, src.length) 

public class Demo3_System {
	public static void main(String[] args) {
		//demo1();
		//demo2();
		//demo3();
		
		int[] src = {11,22,33,44,55};
		int[] dest = new int[8];
		for (int i = 0; i < dest.length; i++) {
			System.out.println(dest[i]);
		}
		
		System.out.println("--------------------------");
		System.arraycopy(src, 0, dest, 0, src.length);		//将数组内容拷贝
		
		for (int i = 0; i < dest.length; i++) {
			System.out.println(dest[i]);
		}
	}

	public static void demo3() {
		long start = System.currentTimeMillis();		//1秒等于1000毫秒
		for(int i = 0; i < 1000; i++) {
			System.out.println("*");
		}
		long end = System.currentTimeMillis();			//获取当前时间的毫秒值
		
		System.out.println(end - start);
	}

	public static void demo2() {
		System.exit(1);							//非0状态是异常终止,退出jvm
		System.out.println("11111111111");
	}

	public static void demo1() {
		for(int i = 0; i < 100; i++) {
			new Demo();
			System.gc();						//运行垃圾回收器,相当于呼喊保洁阿姨
		}
	}

}

class Demo {									//在一个源文件中不允许定义两个用public修饰的类

	@Override
	public void finalize() {
		System.out.println("垃圾被清扫了");
	}							
	
}

四、BigInteger类

1、可以让超过Integer范围内的数据进行运算

2、构造方法

    * publicBigInteger(String val)

3、成员方法

    * 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)。放商和玉树


五、BigDecimal类

1、由于在运算的时候,float类型和double很容易丢失精度,演示案例。 所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal

2、不可变的、任意精度的有符号十进制数。

3、构造方法

    * publicBigDecimal(String val):计算小数的加减乘除,通过构造中传入字符串的方式,可以很精确得到结果,开发时推荐

4、成员方法

    * publicBigDecimal add(BigDecimal augend)

    * publicBigDecimal subtract(BigDecimal subtrahend)

    * publicBigDecimal multiply(BigDecimal multiplicand)

    * publicBigDecimal divide(BigDecimal divisor)

import java.util.Date;
public class Demo6_Date {

	public static void main(String[] args) {
		//demo1();
		//demo2();
		Date d1 = new Date();	
		d1.setTime(1000);	//设置毫秒值,改变时间对象
		System.out.println(d1);
	}

	public static void demo2() {
		Date d1 = new Date();	
		System.out.println(d1.getTime());  //通过时间对象获取毫秒值
		System.out.println(System.currentTimeMillis());	//通过系统类的方法获取当前时间毫秒值
	}

	public static void demo1() {
		Date d1 = new Date();	//如果没有传参数代表的是当前时间
		System.out.println(d1);
		
		Date d2 = new Date(0);	//如果构造方法中参数传为0代表的是1970年1月1日
		System.out.println(d2);	//通过毫秒值创建时间对象
	}

}

六、Date类:util包下的,不能导入aql包下的

1、类Date 表示特定的瞬间,精确到毫秒。

2、构造方法

    * publicDate():当前时间

    * publicDate(long date):1970年1月1日,通过毫秒值创建时间对象

3、成员方法

    * public longgetTime():返回1970.1.10点以来此data对象表示的毫秒数,通过时间对象获取毫秒值

       Ststem.currentTimeMillis():通过系统类的方法获取当前时间毫秒值

    * public voidsetTime(long time):设置毫秒值,改变时间对象


七、SimpleDateFormat类:实现日期和字符串的相互转换

1、DateFormat类的概述

    * DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。是抽象类,所以使用其子类SimpleDateFormat

2、SimpleDateFormat构造方法

    * publicSimpleDateFormat()

    * publicSimpleDateFormat(String pattern):创建时间的指定格式

3、成员方法

    * publicfinal String format(Date date):将日期对象转换为字符串

    * public Dateparse(String source):将时间字符串转换为日期对象

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

public class Demo7_SimpleDateFormat {
	public static void main(String[] args) throws ParseException {
		//demo1();
		//demo2();
		//demo3();
		
		//将时间字符串转换成日期对象
		String str = "2000年08月08日 08:08:08";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		Date d = sdf.parse(str);						//将时间字符串转换成日期对象
		System.out.println(d);
	}

	public static void demo3() {
		Date d = new Date();							//获取当前时间对象
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//创建日期格式化类对象
		System.out.println(sdf.format(d));				//将日期对象转换为字符串
	}

	public static void demo2() {
		Date d = new Date();							//获取当前时间对象
		SimpleDateFormat sdf = new SimpleDateFormat();	//创建日期格式化类对象
		System.out.println(sdf.format(d));	 			//88-6-6 下午9:31
	}

	public static void demo1() {
		//DateFormat df = new DateFormat();				//DateFormat是抽象类,不允许实例化
		//DateFormat df1 = new SimpleDateFormat();
		DateFormat df1 = DateFormat.getDateInstance();	//相当于父类引用指向子类对象,右边的方法返回一个子类对象
	}
}



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值