您好,登錄后才能下訂單哦!
如何在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的特點有哪些 1.Java語言作為靜態面向對象編程語言的代表,實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。 2.Java具有簡單性、面向對象、分布式、安全性、平臺獨立與可移植性、動態性等特點。 3.使用Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。