Java基礎20-System、Math、Arrays、BigDecimal/Integer
阿新 • • 發佈:2018-05-22
C/C++ 數量 java arc math包 工廠 floor 怎麽 對數
一、Arrays類
此類包含用來操作數組(比如排序和搜索)的各種方法。此類還包含一個允許將數組作為列表來查看的靜態工廠。
1.常用方法
public static void main(String[] args) { int[] arr= {1,5,6,8,3,5,2,4,9}; //將int數組轉化為字符串 String ret=Arrays.toString(arr); System.out.println(ret); //排序,第二到第六個數進行排序 Arrays.sort(arr,2,6); System.out.println(Arrays.toString(arr));//所有書進行排序,從小到大 Arrays.sort(arr); System.out.println(Arrays.toString(arr)); //在指定數組中,查找給定元素值出現的位置。若沒有查詢到,返回位置為-1。要求該數組必須是個有序的數組。 System.out.println(Arrays.binarySearch(arr,6)); }
二、System類
System中代表程序所在系統,提供了對應的一些系統屬性信息,和系統操作。
1.常用方法
public static void main(String[] args) {//?獲取當前系統時間與1970年01月01日00:00點之間的毫秒差值 long time=System.currentTimeMillis(); //可以用來測試程序運行的時長 System.out.println(time); //?用來結束正在運行的Java程序。參數傳入一個數字即可。通常傳入0記為正常狀態,其他為異常狀態 System.exit(0); System.out.println("ending"); }
public static void main(String[] args) { //System類中數組拷貝方法arrayCopy//該方法沒有方法體,該方法使用了native修飾符(本地方法),底層使用了c/c++語言 int[] src={1,2,3,65,6,9}; //System.arraycopy(src, srcPos, dest, destPos, length); // src - 源數組。 // srcPos - 源數組中的起始位置。 // dest - 目標數組。 // destPos - 目標數據中的起始位置。 // length - 要復制的數組元素的數量。 //從指定源數組中復制一個數組,復制從指定的位置開始,到目標數組的指定位置結束。 }
二、Math類
Math包含了用於執行基本數學運算的方法,如初等質數、對數、平方根和三角函數等,都是靜態方法。
1.常用方法
?//abs方法,結果都為正數 double d1 = Math.abs(-5); // d1的值為5 double d2 = Math.abs(5); // d2的值為5 ?//ceil方法,結果為比參數值大的最小整數的double值 double d1 = Math.ceil(3.3); //d1的值為 4.0 double d2 = Math.ceil(-3.3); //d2的值為 -3.0 double d3 = Math.ceil(5.1); // d3的值為 6.0 ?//floor方法,結果為比參數值小的最大整數的double值 double d1 = Math.floor(3.3); //d1的值為3.0 double d2 = Math.floor(-3.3); //d2的值為-4.0 double d3 = Math.floor(5.1); //d3的值為 5.0 ?//max方法,返回兩個參數值中較大的值 double d1 = Math.max(3.3, 5.5); //d1的值為5.5 double d2 = Math.max(-3.3, -5.5); //d2的值為-3.3 //?min方法,返回兩個參數值中較小的值 double d1 = Math.min(3.3, 5.5); //d1的值為3.3 double d2 = Math.max(-3.3, -5.5); //d2的值為-5.5 //?pow方法,返回第一個參數的第二個參數次冪的值 double d1 = Math.pow(2.0, 3.0); //d1的值為 8.0 double d2 = Math.pow(3.0, 3.0); //d2的值為27.0 //?round方法,返回參數值四舍五入的結果 double d1 = Math.round(5.5); //d1的值為6.0 double d2 = Math.round(5.4); //d2的值為5.0 //?random方法,產生一個大於等於0.0且小於1.0的double小數 double d1 = Math.random();
四、BigDecimal/BigInteger
float和double都不能表示精確的小數,此時使用Bigdecimal,用於處理金錢和精度要求高的數據
Bigdecimal
可以實現浮點數據的高精度運算
但這樣加起來的數據也並不準確,那怎麽辦呢?
原來這個地方需要用到字符串類型才可以保證數據的準確性
BigInteger
java中long型為最大整數類型,對於超過long型的數據如何去表示呢.在Java的世界中,超過long型的整數已經不能被稱為整數了,它們被封裝成BigInteger對象.在BigInteger類中,實現四則運算都是方法來實現,並不是采用運算符.
public static void main(String[] args) { //大數據封裝為BigInteger對象 BigInteger big1 = new BigInteger("12345678909876543210"); BigInteger big2 = new BigInteger("98765432101234567890"); //add實現加法運算 BigInteger bigAdd = big1.add(big2); //subtract實現減法運算 BigInteger bigSub = big1.subtract(big2); //multiply實現乘法運算 BigInteger bigMul = big1.multiply(big2); //divide實現除法運算 BigInteger bigDiv = big2.divide(big1); }
Java基礎20-System、Math、Arrays、BigDecimal/Integer