温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何在Java中使用Math类和Random类

发布时间:2021-05-26 09:34:18 来源:亿速云 阅读:148 作者:Leah 栏目:编程语言

如何在Java中使用Math类和Random类?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

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的特点有哪些 1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 2.Java具有简单性、面向对象、分布式、安全性、平台独立与可移植性、动态性等特点。 3.使用Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI