與數學相關的類
Math
-
所屬的包java.lang
-
Math構造方法是私有的 我們不能直接調用創建對象
-
由於Math中提供的屬性及方法都是static 不需要創建對象
-
常用的方法
abs()返回給定數字的絕對值 (參數 int long float double)
double = ceil() 向上取整
double = floor() 向下取整
double = rint() 臨近的整數 如果兩邊距離一樣 則返回偶數
int = round() 四捨五入的整數
max(a,b) min(a,b) (參數int long float double)
pow(a,b) a的b次方 (參數double 返回值double)
sqrt(double a) 獲取給定參數的平方根
double = random(); 隨機產生一個 [0.0–1.0) -
Math.random()計算小數的時候精確程度可能有些損失
0-9之間的隨機整數
int value = (int)(Math.random()*10);
5.0—10.9之間的小數
(Math.random()*6)+5
0.0—0.99999 * 6
(0.0—5.49999)+5
Random類
-
在java.util包中的類 需要import導入
-
沒有任何繼承關係 默認繼承Object類
-
查找構造方法—>如何創建對象
Random r = new Random();
-
類中提供的常用方法
r.nextInt(); 隨機產生 int取值範圍的整數 有正有負
r.nextInt(int bound); 隨機產生一個 [0–bound) 整數
注意bound必須爲正數 否則會出現如下的運行時異常
IllegalArgumentException
r.nextFloat() 隨機產生一個 [0.0—1.0)
r.nextBoolean() 隨機產生一個boolean值 true false
UUID類
- 所屬的包 java.util 需要import導入
- 沒有任何繼承關係 默認繼承Object類
- 構造方法有 沒有無參數的 我們通常不會創建對象
UUID uuid = UUID.randomUUID();
System.out.println(uuid.toString());//數據庫表格主鍵 primary key
產生一個32位的隨機元素 每一個位置是一個16進制的數字
BigInteger類 大整數
long -2的63次方 ~ 2的63次方-1
- 所屬的包java.math 需要import導入
- 繼承自Number
- 如何創建對象 提供的構造方法全部都是帶參數的
通常利用帶String參數的構造方法創建這個類的對象
BigInteger bi = new BigInteger(“123”); - 類中的常用方法
做四則運算
add() subtract() multiply() divide() - 小例子 設計一個方法 用來計算給定數字的階乘 5 12345==120
//設計一個方法 用來計算給定數字的階乘
//參數 返回值
public BigInteger factorial(int num){
BigInteger result = new BigInteger(“1”);
for(int i=1;i<=num;i++){
result = result.multiply(new BigInteger(i+""));
}
return result;
}
BigDecima類
超過了double取值範圍
- 所屬的包 java.math包
- 繼承Number類
- 通常也是可以通過 帶String參數 構建對象
- 類中的常用方法
做四則運算
add() subtract() multiply() divide()
兩個參數前面是保留小數點之後的位數 後面參數是設置的模式
對象.setScale(2,BigDecimal.ROUND_DOWN);
DecimalFormat
將小數點之前和之後的位數都能處理的類---->格式化
- 所屬的包 java.text
- import導入才能使用
- 通過帶String參數的構造方法創建一個格式化對象 0 #
- 調用format方法將一個小數格式化成一個字符串
DecimalFormat df = new DecimalFormat(“000.###”);// 0 #
String value = df.format(12.45);
System.out.println(value);
其他常用類
Scanner類
- 所屬的包java.util包 需要import導包
- 通過一個帶輸入流的構造方法創建對象
- 常用方法 nextInt() nextFloat() next() nextLine()
System類
- 所屬的包java.lang包 不需要導入
- 不需要創建對象 通過類名就可以訪問
- 有三個屬性及若干的方法
三個屬性out in err
方法gc() exit(0); currentTimeMillis();