欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java詳細講解Math和Random類中有哪些常用方法

 更新時間:2022年05月11日 10:18:06   作者:星辰與晨曦  
Math類位于java.lang包中,包含很多用于科學計算的類方法,這些方法可以直接通過類名調用。Random類獲取隨機數(shù),位于java.util包中,本篇帶你了解它們的常用方法

java.lang.Math當中提供了一系列的靜態(tài)方法用于科學計算;其方法的參數(shù)和返回值的類型一般為double型。

下來我就簡單的介紹一下Math類中常用的方法。

public static int abs(double a) 求絕對值

public static double sqrt(double a) 求平方根

public static double pow(double a, double b) 求a的b次冪

public static double max(double a, double b) 求a和b那個大

public static double min(double a, double b) 求a和b那個小

public static long round(double a) 將a四舍五入返回lang型

public static double floor(double a) 返回小于或等于參數(shù)的最大整數(shù),數(shù)據(jù)類型為double型

public static double ceil(double a) 返回大于或等于參數(shù)的最大整數(shù),數(shù)據(jù)類型為double型

public static double random() 返回一個double值為正號,大于等于0.0 ,小于1.0

代碼演示一下上面的方法:

public class Demo01 {
    public static void main(String[] args) {
        System.out.println("求-3的絕對值為:" + Math.abs(-3));
        System.out.println("求4的平方根為:" + Math.sqrt(4));
        System.out.println("求2的3次方冪為:" + Math.pow(2, 3));
        System.out.println("求2和3的最大值為:" + Math.max(2, 3));
        System.out.println("求2和3的最小值為:" + Math.min(2, 3));
        System.out.println("求9.87向下轉型的數(shù)為:" + Math.floor(9.87));
        System.out.println("求9.12向上轉型的數(shù)為:" + Math.ceil(9.12));
        System.out.println("求9.55的四舍五入的值為:" + Math.round(9.55));
        System.out.println("求一個0.0到1.0的隨機數(shù)(不包括1.0)為:" + Math.random());
    }
}

Math類的源碼我就不在這做多的展示,因為它底層有體現(xiàn)的話,也非常簡單,而且大多都是采用的底層操作系統(tǒng)上的去實現(xiàn)去了。

Random()方法

Random方法是java當中獲得隨機數(shù)的類,調用它對應的方法,可以獲得我們想要區(qū)間的隨機數(shù)。

創(chuàng)建隨機數(shù)的對象:

Random random = new Random();

Random當中的方法并不多,我就在這先演示一下:

import java.util.Random;
public class Demo03 {
    public static void main(String[] args) {
        Random random = new Random();
        //返回整型里任意一個
        System.out.println("nextInt()輸出為:"+random.nextInt());
        //返回大于等于0,小于9的任意一個整型
        System.out.println("nextInt(9)輸出為:"+random.nextInt(9));
        //返回Boolean型任意一個
        System.out.println("nextBoolean()輸出為:"+random.nextBoolean());
        //返回Double當中 0.0和 1.0之間的的任意一個
        System.out.println("nextDouble()輸出為:"+random.nextDouble());
    }
}

輸出結果:

當想生成一個數(shù)組的隨機數(shù)的時候,也可以直接采取調用來實現(xiàn):

import java.util.Arrays;
import java.util.Random;
public class Demo04 {
    public static void main(String[] args) {
        Random random = new Random();
        byte[] bytes = new byte[5];
        random.nextBytes(bytes);
        System.out.println(Arrays.toString(bytes));
    }
}

這些方法具體的實現(xiàn),都是通過一個叫種子的東西生成的。

在這科普一個小知識點。

Random獲得的隨機數(shù),并不是真正的隨機數(shù),也可以說現(xiàn)在普通用戶以及公司是沒有辦法獲得真正的隨機數(shù),而Random獲得的隨機數(shù)稱為一種偽隨機數(shù)。想要獲得真正的隨機數(shù)只能通過量子計算機獲得。

所以我們選擇獲得的隨機數(shù),大多都是通過當前時間經(jīng)過一系列復雜的算法,得到一個隨機數(shù)。 這種復雜的算法我們就稱為種子。

所以我們也就可以通過拿到當時生成Random對象時的種子,再傳進去,就可以復制出它之前生成的隨機數(shù)。

現(xiàn)在讓我們先看看創(chuàng)建Random時的源碼:

在Java當中,為了安全性,當然也會提供給我們對應的方法。

我們自己傳入種子,不使用Java提供的方法得到,通過自己寫的生成隨機數(shù)。

在這我才給代碼演示一下:

public class Demo02 {
    public static void main(String[] args) {
        Random random = new Random(5);
        System.out.println("第一次調用:");
        for (int i = 0; i < 5; i++) {
            System.out.println(random.nextInt());
        }
        random = new Random(5);
        System.out.println("第二次調用:");
        for (int i = 0; i < 5; i++) {
            System.out.println(random.nextInt());
        }
    }
}

這是我重讀javase基礎的一個系列,比起當時初學的時候,現(xiàn)在看問題多了個高度,理解什么也相對輕松一點全面一些。學習起來更加偏向閱讀源碼底層來看,多為自己幾個為什么?

到此這篇關于Java詳細講解Math和Random類中有哪些常用方法的文章就介紹到這了,更多相關Java Math和Random內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • IntelliJ IDEA代碼提示忽略大小寫的具體設置步驟

    IntelliJ IDEA代碼提示忽略大小寫的具體設置步驟

    在IDEA開發(fā)過程中,代碼補全功能是提升編碼效率的核心特性之一,默認情況下,IDEA的代碼提示會嚴格匹配大小寫,這對于遵循命名規(guī)范的項目是合理的,然而,在某些場景下,開發(fā)者可能希望代碼提示忽略大小寫,以提升輸入靈活性,所以本文介紹了如何設置IDEA提示忽略大小寫
    2025-06-06
  • Spring中bean的生命周期之getSingleton方法

    Spring中bean的生命周期之getSingleton方法

    今天給大家?guī)淼氖顷P于Spring的相關知識,文章圍繞著Spring中bean的生命周期之getSingleton方法展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Java日常練習題,每天進步一點點(19)

    Java日常練習題,每天進步一點點(19)

    下面小編就為大家?guī)硪黄狫ava基礎的幾道練習題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • java 實現(xiàn)讀取clob

    java 實現(xiàn)讀取clob

    這篇文章主要介紹了java 如何實現(xiàn)讀取clob,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-10-10
  • 詳解springboot項目docker部署實踐

    詳解springboot項目docker部署實踐

    這篇文章主要介紹了詳解springboot項目docker部署實踐,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • SpringBoot啟動多數(shù)據(jù)源找不到合適的驅動類問題

    SpringBoot啟動多數(shù)據(jù)源找不到合適的驅動類問題

    這篇文章主要介紹了SpringBoot啟動多數(shù)據(jù)源找不到合適的驅動類問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 學習java一定要知道的垃圾收集器

    學習java一定要知道的垃圾收集器

    這篇文章主要介紹了學習java一定要知道的垃圾收集器,垃圾收集器的發(fā)展路線,簡單來說是隨著內存越來越大而發(fā)生變化,更多相關介紹需要的朋友可以參考一下
    2022-07-07
  • 在SpringBoot中使用JWT的實現(xiàn)方法

    在SpringBoot中使用JWT的實現(xiàn)方法

    這篇文章主要介紹了在SpringBoot中使用JWT的實現(xiàn)方法,詳細的介紹了什么是JWT和JWT實戰(zhàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • SpringBoot整合Keycloak實現(xiàn)單點登錄的示例代碼

    SpringBoot整合Keycloak實現(xiàn)單點登錄的示例代碼

    本文主要介紹了SpringBoot整合Keycloak實現(xiàn)單點登錄的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Java基礎之代碼死循環(huán)詳解

    Java基礎之代碼死循環(huán)詳解

    這篇文章主要介紹了Java基礎之代碼死循環(huán)詳解,文中有非常詳細的代碼示例,對正在學習java基礎的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04

最新評論