Java Math类、Random类、System类及BigDecimal类用法示例

本文实例讲述了Java Math类、Random类、System类及BigDecimal类用法。分享给大家供大家参考,具体如下:

Math类

Math的方法

package cn.itcast_01;

/*

* 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) 四舍五入(参数为double的自学)

* public static double sqrt(double a):正平方根

*/

public class MathDemo {

public static void main(String[] args) {

// public static final double PI

System.out.println("PI:" + Math.PI);

// public static final double E

System.out.println("E:" + Math.E);

System.out.println("--------------");

// public static int abs(int a):绝对值

System.out.println("abs:" + Math.abs(10));

System.out.println("abs:" + Math.abs(-10));

System.out.println("--------------");

// public static double ceil(double a):向上取整

System.out.println("ceil:" + Math.ceil(12.34));

System.out.println("ceil:" + Math.ceil(12.56));

System.out.println("--------------");

// public static double floor(double a):向下取整

System.out.println("floor:" + Math.floor(12.34));

System.out.println("floor:" + Math.floor(12.56));

System.out.println("--------------");

// public static int max(int a,int b):最大值

System.out.println("max:" + Math.max(12, 23));

// 需求:我要获取三个数据中的最大值

// 方法的嵌套调用

System.out.println("max:" + Math.max(Math.max(12, 23), 18));

// 需求:我要获取四个数据中的最大值

System.out.println("max:"

+ Math.max(Math.max(12, 78), Math.max(34, 56)));

System.out.println("--------------");

// public static double pow(double a,double b):a的b次幂

System.out.println("pow:" + Math.pow(2, 3));

System.out.println("--------------");

// public static double random():随机数 [0.0,1.0)

System.out.println("random:" + Math.random());

// 获取一个1-100之间的随机数

System.out.println("random:" + ((int) (Math.random() * 100) + 1));

System.out.println("--------------");

// public static int round(float a) 四舍五入(参数为double的自学)

System.out.println("round:" + Math.round(12.34f));

System.out.println("round:" + Math.round(12.56f));

System.out.println("--------------");

//public static double sqrt(double a):正平方根

System.out.println("sqrt:"+Math.sqrt(4));

}

}

运行结果:

PI:3.141592653589793

E:2.718281828459045

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

abs:10

abs:10

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

ceil:13.0

ceil:13.0

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

floor:12.0

floor:12.0

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

max:23

max:23

max:78

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

pow:8.0

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

random:0.39060160152994794

random:75

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

round:12

round:13

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

sqrt:2.0

Math.random()

package cn.itcast_02;

import java.util.Scanner;

/*

* 需求:请设计一个方法,可以实现获取任意范围内的随机数。

*

* 分析:

* A:键盘录入两个数据。

* int strat;

* int end;

* B:想办法获取在start到end之间的随机数

* 我写一个功能实现这个效果,得到一个随机数。(int)

* C:输出这个随机数

*/

public class MathDemo {

@SuppressWarnings("resource")

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入开始数:");

int start = sc.nextInt();

System.out.println("请输入结束数:");

int end = sc.nextInt();

for (int x = 0; x < 100; x++) {

// 调用功能

int num = getRandom(start, end);

// 输出结果

System.out.println(num);

}

}

/*

* 写一个功能 两个明确: 返回值类型:int 参数列表:int start,int end

*/

public static int getRandom(int start, int end) {

int number = (int) (Math.random() * (end - start + 1)) + start;

return number;

}

}

运行结果:

请输入开始数:

100

请输入结束数:

1000

394

478

224

432

917

443

715

830

123

735

510

581

134

508

318

156

365

223

553

954

401

514

732

766

812

358

118

907

113

923

182

123

111

728

217

235

444

963

754

426

889

885

650

475

673

783

906

324

414

792

695

468

406

524

346

701

220

350

505

866

186

925

986

147

608

487

957

964

369

373

468

982

291

372

867

280

110

680

268

110

895

897

586

445

387

728

114

427

974

452

497

444

765

603

243

381

436

757

316

137

Random类

package cn.itcast_01;

import java.util.Random;

/*

* Random:产生随机数的类

*

* 构造方法:

* public Random():没有给种子,用的是默认种子,是当前时间的毫秒值

* public Random(long seed):给出指定的种子

*

* 给定种子后,每次得到的随机数是相同的。

*

* 成员方法:

* public int nextInt():返回的是int范围内的随机数

* public int nextInt(int n):返回的是[0,n)范围的内随机数

*/

public class RandomDemo {

public static void main(String[] args) {

// 创建对象

// Random r = new Random();

Random r = new Random(1111);

for (int x = 0; x < 10; x++) {

// int num = r.nextInt();

int num = r.nextInt(100) + 1;

System.out.println(num);

}

}

}

System类

系统类,提供了一些有用的字段和方法

运行垃圾回收器

package cn.itcast_01;

public class Person {

private String name;

private int age;

public Person() {

super();

}

public Person(String name, int age) {

super();

this.name = name;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

@Override

public String toString() {

return "Person [name=" + name + ", age=" + age + "]";

}

@Override

protected void finalize() throws Throwable {

System.out.println("当前的对象被回收了" + this);

super.finalize();

}

}

package cn.itcast_01;

/*

* System类包含一些有用的类字段和方法。它不能被实例化。

*

* 方法:

* public static void gc():运行垃圾回收器。

* public static void exit(int status)

* 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) {

Person p = new Person("赵雅芝", 60);

System.out.println(p);

p = null; // 让p不再指定堆内存

System.gc();

}

}

退出jvm,获取当前时间的毫秒值

package cn.itcast_02;

/*

* 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.exit(0);

// System.out.println("我们也喜欢赵雅芝(白娘子)");

// System.out.println(System.currentTimeMillis());

// 单独得到这样的实际目前对我们来说意义不大

// 那么,它到底有什么作用呢?

// 要求:请大家给我统计这段程序的运行时间

long start = System.currentTimeMillis();

for (int x = 0; x < 100000; x++) {

System.out.println("hello" + x);

}

long end = System.currentTimeMillis();

System.out.println("共耗时:" + (end - start) + "毫秒");

}

}

数组复制

package cn.itcast_03;

import java.util.Arrays;

/*

* 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) {

// 定义数组

int[] arr = { 11, 22, 33, 44, 55 };

int[] arr2 = { 6, 7, 8, 9, 10 };

// 请大家看这个代码的意思

System.arraycopy(arr, 2, arr2, 1, 2);

System.out.println(Arrays.toString(arr));

System.out.println(Arrays.toString(arr2));

}

}

运行结果:

[11, 22, 33, 44, 55]

[6, 33, 44, 9, 10]

更多java相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

以上是 Java Math类、Random类、System类及BigDecimal类用法示例 的全部内容, 来源链接: utcz.com/z/356372.html

回到顶部