math,Random, System,BigInteger,BigDecimal,Data类的概述和方法使用

Math类的概述和方法使用
package com.heima.Math;

public class Demo1_Math {
/*
 * Math类包含执行数学运算的基本方法,如初等指数,对数,平方根和三角函数
 * 成员方法:
 * 		public static int abs(int a)
 * 		public static double ceil(double a)
 * 		public static double floor(double a)
 * 		public static double pow(double a,double b)
 * 		public static int max(int a,int b)
 * 		public static double random()
 * 		public static int round(float a),参数为double的自学
 * 		public static double sqrt(double a)
 * */
	public static void main(String[] args) {
		System.out.println(Math.PI);
		System.out.println(Math.abs(-10));//取绝对值
		
		System.out.println(Math.ceil(12.99));//结果都是13.0
		System.out.println(Math.ceil(12.3));//ceil是 天花板的意思,同意,floor是地板的意思
		System.out.println(Math.floor(12.3));//结果是12.0
		
		System.out.println(Math.max(20, 30));//返回最大值
		
		System.out.println(Math.pow(2, 4));//前面的数是底数,后面的数是指数,2^4
		
		System.out.println(Math.random());//生成[0.0,1.0)之间的随机小数
		System.out.println(Math.round(2.651));//四舍五入
		
		System.out.println(Math.sqrt(8.0));//开平方,取根号
	}

}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

Random类

package com.heima.Math;

import java.util.Random;

public class Demo2_Random {

	public static void main(String[] args) {
		Random r=new Random();
		int x=r.nextInt();//在int范围之内随机生成一个数
		System.out.println(x);
		System.out.println(r.nextInt(100));//需要掌握,随机生成一个[0,100)之间的数字
		
		Random r2=new Random(1000);//传一个1000的种子
		int a=r2.nextInt();
		int b=r2.nextInt();
		System.out.println(a+"  "+b);//-1244746321  1060493871,根据种子算出的结果不会变
	}

}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

System类

package com.heima.Math;

public class Demo3_System {
/*
 * A:System类的概述	
 * 		system类包含一些有用的类字段和方法,它不能被实例化
 * B:成员方法
 * 		public static void gc()  运行垃圾回收器
 * 		public statci void exit(int status)
 * 		public static long currentTimeMillis()返回:
										当前时间与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量)。
 * 		public static void arraycopy(Object src,int srcPos,Object dest,int destPOse,int length)
 * */
	public static void main(String[] args) {
		  //demo1();
		//demo2();  推出Java虚拟机
		//demo3();	获取当前时间的毫秒值
		int[] src={11,22,33,44,55};
		int[] dest=new int[8];
		System.arraycopy(src, 0, dest, 0, src.length);//将数组内容拷贝
		for(int i=0;i<dest.length;i++){
		System.out.print(Integer.toString(dest[i])+" ");
	}
	}

private static void demo3() {
	long start=System.currentTimeMillis();
	for(long i=0;i<1000;i++){
		System.out.println("d");
	}
	long end=System.currentTimeMillis();
	System.out.println(end-start);//可以这样算出程序运行的时间,运行27毫秒
}

private static void demo2() {
	System.exit(0);//非0状态是异常终止,推出jvm
	System.out.println("000000");//没有打印出这句话,因为Java虚拟机已经退出了
}

	private static void demo1() {
		for(int i=0;i<100;i++){
			  new Demo();/*垃圾回收器要回收对象的时候,首先要调用这个类的finalize方法(你可以 写程序验证这个结论),
							  一般的纯Java编写的Class不需要重新覆盖这个方法,因为Object已经实现了一个默认的,
							  除非我们要实现特殊的功能
							  (这 里面涉及到很多东西,比如对象空间树等内容)。*/
			  System.gc();//垃圾回收器,相当于保洁阿姨
		  }
	}

}
class Demo{//在一个源文件中不允许两个用public定义的类,但是在开发中不用担心,因为写在不同源文件中
	public void finalize(){
		System.out.println("垃圾被清扫了");
	}
	
}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

BigInteger类放很大的整数

package com.heima.Math;

import java.math.BigInteger;

public class Demo4_BigInteger {
/*
 * A:BigInterger的概述
 * 		可以让超过integer范围的数进行运算
 * B:构造方法
 * 		public BigInteger(String val)
 * C:成员方法
 * 		public BinInteger add(BigInteger val)
 * 		public BigInteger substact(BigInteger val)
 * 		public BigInteger multiply(BigInteger val)
 * 		public BigInteger divide(BigInteger val)
 * 		public BigInteger[] divideAndRemainder(BigInteger val)
 * */
	public static void main(String[] args) {
		//int和long都有长度限制
		BigInteger bi1=new BigInteger("1000");
		BigInteger bi2=new BigInteger("2");
		System.out.println(bi1.add(bi2));//加
		System.out.println(bi1.subtract(bi2));//减
		System.out.println(bi1.multiply(bi2));//乘法
		System.out.println(bi1.divide(bi2));//除法
		BigInteger[] arr=bi1.divideAndRemainder(bi2);//取除数和余数
		for(int i=0;i<arr.length;i++){
			System.out.println(arr[i]);
		}
	}

}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

BigDecimal类

package com.heima.Math;

import java.math.BigDecimal;

public class Demo_BifDEcilmal {
//计算机内二进制表示小数时有时候会出现精度的损失,所以BigDecimal可以用来做高精度的小数运算
	public static void main(String[] args) {
		/*BigDecimal bi1=new BigDecimal(2.0);
		BigDecimal bi2=new BigDecimal(1.1);//这种方式在开发中不推荐,因为不够jingque
		System.out.println(bi1.subtract(bi2));*/
		BigDecimal bi1=new BigDecimal("2.0");
		BigDecimal bi2=new BigDecimal("1.1");//通过构造中传入字符串的方式,开发时推荐
		System.out.println(bi1.subtract(bi2));
	}

}

。。。。。。。。。。。。。。。。。。。。。。。。。

Data类

package com.heima.Math;

import java.sql.DatabaseMetaData;
import java.util.Date;


public class Demo_Data {
/*
 * Data类概述:
 * 		data类,表示特定的瞬间,精确到毫秒
 * B:构造方法:
 * 		public Data()
 * 		public Data(long data)
 * C:成员方法
 * 		public long getTime()
 * 		public void setTime(long time)
 *  * */
	public static void main(String[] args) {
		//demo1();
		Date d1=new Date();
		d1.setTime(1000);
		System.out.println(d1);
	}

private static void demo1() {
	Date d1=new Date();
	System.out.println(d1);//Wed May 30 21:00:17 CST 2018
	
	Date d2=new Date(0);
	System.out.println(d2);//Thu Jan 01 08:00:00 CST 1970,打印出来时间时八点而非0点,其实系统时间依然是0
	//点,但是我的电脑属于东八区,所以是八点。构造方法中参数传0代表的是1970年,如果没有传参数,代表的是当前时间
	System.out.println(d1.getTime());//返回的是当前时间的毫秒值,通过时间对象获取毫秒值
	System.out.println(System.currentTimeMillis());//通过系统类方法获取毫秒值
}

}

猜你喜欢

转载自blog.csdn.net/qq_34788903/article/details/80511910