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());//通过系统类方法获取毫秒值 } }