1. 程式人生 > >Java基礎20-System、Math、Arrays、BigDecimal/Integer

Java基礎20-System、Math、Arrays、BigDecimal/Integer

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

javalong型為最大整數類型,對於超過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