Math類是數學操做類,提供了一些用於進行數學計算的靜態方法。Math類中有兩個靜態常量PI和E,分別表明數學常量π和e。java
列表中是Math類的一些經常使用方法:算法
方法聲明 | 功能描述 |
int abs(int a) | 計算a的絕對值 |
double ceil(double a) | 向上取整,求大於參數的最小整數 |
double floor(double a ) | 向下取整,求小於參數的最大整數 |
long round(double a) | 表示四捨五入,算法爲Math.floor(a+0.5) |
double max(double a,double b) | 取兩個數的較大值 |
double min(double a,double b) | 取兩個數的較小值 |
double random() | 生成一個0到1之間的隨機數 |
下面是Math類中一些經常使用方法的例子。dom
Example01.javaspa
public class Example01 { public static void main(String[] args) { System.out.println("計算絕對值的結果:" + Math.abs(-1)); System.out.println("求大於參數的最小整數:" + Math.ceil(5.6)); System.out.println("求小於參數的最大整數:" + Math.floor(-4.2)); System.out.println("對小數進行四捨五入後的結果:" + Math.round(-4.6));//round()表示四捨五入,算法爲Math.floor(x+0.5) System.out.println("求兩個數的較大值: " + Math.max(2.1, -2.1)); System.out.println("求兩個數的較小值:" + Math.min(2.1, -2.1)); System.out.println("生成一個大於等於0.0小於1.0的隨機數:" + Math.random()); } }
運行結果以下:3d
Random類存在於java.util包中,它能夠在指定的取值範圍內產生隨機數。下面是它的構造方法:code
方法聲明 | 功能描述 |
Random() | 構造方法,用於建立一個僞隨機數生成器 |
Random(long seed) | 構造方法,使用一個long型的seed種子建立僞隨機數生成器 |
上面的構造方法中,第一個構造方法是無參的,經過它建立的Random實例對象每次使用的種子是隨機的,所以每一個對象所產生的隨機數不一樣。若是但願建立的多個Random實例對象產生相同序列的隨機數,則能夠在建立對象時調用第二個構造方法,傳入相同的種子便可。下面是構造方法的例子:對象
Example02.javablog
public class Example02 { public static void main(String[] args) { Random random = new Random();//不傳入種子 //隨機產生10個【0,100】之間的整數 for (int i = 0; i < 10; i++) { System.out.println(random.nextInt(100)); } } }
第一次運行結果以下:數學
第二次運行結果以下:table
從上面的兩次結果能夠看出來,兩次產生的隨機數序列是不同的。這是由於當建立Random的實例對象時,沒有指定種子,系統會以當前時間戳爲種子,產生隨機數。
下面把代碼稍做修改:
Example03.java
public class Example03 { public static void main(String[] args) { Random random = new Random(13);//建立對象時傳入種子 //隨機產生10個【0,100】之間的整數 for (int i = 0; i < 10; i++) { System.out.println(random.nextInt(100)); } } }
第一次運行結果以下:
第二次運行結果以下:
從兩次運行結果能夠看出來,在建立Random類的實例對象時,若是指定了相同的種子,則每次產生的隨機數是相同的。
Random類提供了更多的方法來生成各類僞隨機數,不只能夠生成整數類型的隨機數,還能夠生成浮點類型的隨機數。
方法聲明 | 功能描述 |
boolean nextBoolean() | 隨機生成boolean類型的隨機數 |
double nextDouble() | 隨機生成double類型的隨機數 |
float nextFloat() | 隨機生成float類型的隨機數 |
int nextInt() | 隨機生成int類型的隨機數 |
int nextInt(int n) | 隨機生成0~n之間的int類型的隨機數 |
long nextLong() | 隨機生成long類型的隨機數 |
下面經過例子來看一下這些方法的使用:
Example04.java
public class Example04 { public static void main(String[] args) { Random r1 = new Random();//建立Random實例對象 System.out.println("產生float類型的隨機數:" + r1.nextFloat()); System.out.println("產生0-100之間int類型的隨機數:" + r1.nextInt(100)); System.out.println("產生double類型的隨機數:" + r1.nextDouble()); } }
運行結果以下:
從上面的運行結果能夠看出來,經過調用Random類不一樣的方法分別產生了不一樣類型的隨機數。