Java Math类、Random类、System类及BigDecimal类用法示例
本文实例讲述了JavaMath类、Random类、System类及BigDecimal类用法。分享给大家供大家参考,具体如下:
Math类
Math的方法
packagecn.itcast_01; /* *Math:用于数学运算的类。 *成员变量: *publicstaticfinaldoublePI *publicstaticfinaldoubleE *成员方法: *publicstaticintabs(inta):绝对值 *publicstaticdoubleceil(doublea):向上取整 *publicstaticdoublefloor(doublea):向下取整 *publicstaticintmax(inta,intb):最大值(min自学) *publicstaticdoublepow(doublea,doubleb):a的b次幂 *publicstaticdoublerandom():随机数[0.0,1.0) *publicstaticintround(floata)四舍五入(参数为double的自学) *publicstaticdoublesqrt(doublea):正平方根 */ publicclassMathDemo{ publicstaticvoidmain(String[]args){ //publicstaticfinaldoublePI System.out.println("PI:"+Math.PI); //publicstaticfinaldoubleE System.out.println("E:"+Math.E); System.out.println("--------------"); //publicstaticintabs(inta):绝对值 System.out.println("abs:"+Math.abs(10)); System.out.println("abs:"+Math.abs(-10)); System.out.println("--------------"); //publicstaticdoubleceil(doublea):向上取整 System.out.println("ceil:"+Math.ceil(12.34)); System.out.println("ceil:"+Math.ceil(12.56)); System.out.println("--------------"); //publicstaticdoublefloor(doublea):向下取整 System.out.println("floor:"+Math.floor(12.34)); System.out.println("floor:"+Math.floor(12.56)); System.out.println("--------------"); //publicstaticintmax(inta,intb):最大值 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("--------------"); //publicstaticdoublepow(doublea,doubleb):a的b次幂 System.out.println("pow:"+Math.pow(2,3)); System.out.println("--------------"); //publicstaticdoublerandom():随机数[0.0,1.0) System.out.println("random:"+Math.random()); //获取一个1-100之间的随机数 System.out.println("random:"+((int)(Math.random()*100)+1)); System.out.println("--------------"); //publicstaticintround(floata)四舍五入(参数为double的自学) System.out.println("round:"+Math.round(12.34f)); System.out.println("round:"+Math.round(12.56f)); System.out.println("--------------"); //publicstaticdoublesqrt(doublea):正平方根 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()
packagecn.itcast_02; importjava.util.Scanner; /* *需求:请设计一个方法,可以实现获取任意范围内的随机数。 * *分析: *A:键盘录入两个数据。 *intstrat; *intend; *B:想办法获取在start到end之间的随机数 *我写一个功能实现这个效果,得到一个随机数。(int) *C:输出这个随机数 */ publicclassMathDemo{ @SuppressWarnings("resource") publicstaticvoidmain(String[]args){ Scannersc=newScanner(System.in); System.out.println("请输入开始数:"); intstart=sc.nextInt(); System.out.println("请输入结束数:"); intend=sc.nextInt(); for(intx=0;x<100;x++){ //调用功能 intnum=getRandom(start,end); //输出结果 System.out.println(num); } } /* *写一个功能两个明确:返回值类型:int参数列表:intstart,intend */ publicstaticintgetRandom(intstart,intend){ intnumber=(int)(Math.random()*(end-start+1))+start; returnnumber; } }
运行结果:
请输入开始数:
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类
packagecn.itcast_01; importjava.util.Random; /* *Random:产生随机数的类 * *构造方法: *publicRandom():没有给种子,用的是默认种子,是当前时间的毫秒值 *publicRandom(longseed):给出指定的种子 * *给定种子后,每次得到的随机数是相同的。 * *成员方法: *publicintnextInt():返回的是int范围内的随机数 *publicintnextInt(intn):返回的是[0,n)范围的内随机数 */ publicclassRandomDemo{ publicstaticvoidmain(String[]args){ //创建对象 //Randomr=newRandom(); Randomr=newRandom(1111); for(intx=0;x<10;x++){ //intnum=r.nextInt(); intnum=r.nextInt(100)+1; System.out.println(num); } } }
System类
系统类,提供了一些有用的字段和方法
运行垃圾回收器
packagecn.itcast_01; publicclassPerson{ privateStringname; privateintage; publicPerson(){ super(); } publicPerson(Stringname,intage){ super(); this.name=name; this.age=age; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } @Override publicStringtoString(){ return"Person[name="+name+",age="+age+"]"; } @Override protectedvoidfinalize()throwsThrowable{ System.out.println("当前的对象被回收了"+this); super.finalize(); } }
packagecn.itcast_01; /* *System类包含一些有用的类字段和方法。它不能被实例化。 * *方法: *publicstaticvoidgc():运行垃圾回收器。 *publicstaticvoidexit(intstatus) *publicstaticlongcurrentTimeMillis() *publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength) */ publicclassSystemDemo{ publicstaticvoidmain(String[]args){ Personp=newPerson("赵雅芝",60); System.out.println(p); p=null;//让p不再指定堆内存 System.gc(); } }
退出jvm,获取当前时间的毫秒值
packagecn.itcast_02; /* *System类包含一些有用的类字段和方法。它不能被实例化。 * *方法: *publicstaticvoidgc():运行垃圾回收器。 *publicstaticvoidexit(intstatus):终止当前正在运行的Java虚拟机。参数用作状态码;根据惯例,非0的状态码表示异常终止。 *publicstaticlongcurrentTimeMillis():返回以毫秒为单位的当前时间 *publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength) */ publicclassSystemDemo{ publicstaticvoidmain(String[]args){ //System.out.println("我们喜欢林青霞(东方不败)"); //System.exit(0); //System.out.println("我们也喜欢赵雅芝(白娘子)"); //System.out.println(System.currentTimeMillis()); //单独得到这样的实际目前对我们来说意义不大 //那么,它到底有什么作用呢? //要求:请大家给我统计这段程序的运行时间 longstart=System.currentTimeMillis(); for(intx=0;x<100000;x++){ System.out.println("hello"+x); } longend=System.currentTimeMillis(); System.out.println("共耗时:"+(end-start)+"毫秒"); } }
数组复制
packagecn.itcast_03; importjava.util.Arrays; /* *System类包含一些有用的类字段和方法。它不能被实例化。 * *方法: *publicstaticvoidgc():运行垃圾回收器。 *publicstaticvoidexit(intstatus):终止当前正在运行的Java虚拟机。参数用作状态码;根据惯例,非0的状态码表示异常终止。 *publicstaticlongcurrentTimeMillis():返回以毫秒为单位的当前时间 *publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength) *从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。 */ publicclassSystemDemo{ publicstaticvoidmain(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程序设计有所帮助。