最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java8 Math新增方法介紹

 更新時(shí)間:2020年08月20日 09:14:39   作者:neweastsun  
這篇文章主要介紹了java8 Math新增方法介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

通常都認(rèn)為java8新功能主要包括函數(shù)式編程及l(fā)ambda表達(dá)式。然而,除了那些大的特點(diǎn)之外,還有其他的,影響力小卻很有趣,大多時(shí)候不為人所知,甚至不太被人評(píng)論。

本文我們列舉java.lang.Math類中新增的方法,并給一些小的示例來說明。

*exact() 方法

首先看一組擴(kuò)展已經(jīng)存在的常用算術(shù)操作方法,從名稱及可以知其意,處理實(shí)現(xiàn)原有功能外,還增加了當(dāng)結(jié)果溢出時(shí)拋出異常。這些方法可以使用integer和long類型作為參數(shù)。

addExact()

返回兩個(gè)參數(shù)之和,結(jié)果溢出時(shí)拋出ArithmeticException 異常:

Math.addExact(100, 50); // returns 150

Math.addExact(Integer.MAX_VALUE, 1); // throws ArithmeticException

substractExact()方法

返回兩個(gè)參數(shù)之差,結(jié)果溢出時(shí)拋出ArithmeticException 異常:

Math.subtractExact(100, 50); // returns 50

Math.subtractExact(Long.MIN_VALUE, 1); // throws ArithmeticException

incrementExact()方法

返回參數(shù)值加一,結(jié)果溢出時(shí)拋出ArithmeticException 異常:

Math.incrementExact(100); // returns 101

Math.incrementExact(Integer.MAX_VALUE); // throws ArithmeticException

decrementExact()方法

返回參數(shù)值減一,結(jié)果溢出時(shí)拋出ArithmeticException 異常:

Math.decrementExact(100); // returns 99

Math.decrementExact(Long.MIN_VALUE); // throws ArithmeticException

multiplyExact()方法

返回兩個(gè)參數(shù)之積,結(jié)果溢出時(shí)拋出ArithmeticException 異常:

Math.multiplyExact(100, 5); // returns 500

Math.multiplyExact(Long.MAX_VALUE, 2); // throws ArithmeticException

negateExact()方法

改變參數(shù)符號(hào),結(jié)果溢出時(shí)拋出ArithmeticException 異常。我們來看看值在內(nèi)存中的表示,并理解為什么會(huì)溢出,因?yàn)椴⒉幌衿渌鹐xact方法那么直觀看出來:

Math.negateExact(100); // returns -100

Math.negateExact(Integer.MIN_VALUE); // throws ArithmeticException

第二個(gè)示例需要解釋下,因?yàn)椴荒芤谎劭闯鰜恚阂绯鍪且驗(yàn)镮nteger.MIN_VALUE 是 −2.147.483.648,而Integer.MAX_VALUE 是 2.147.483.647,所以返回值超出整數(shù)范圍。

其他方法

floorDiv()

第一個(gè)參數(shù)除以第二參數(shù),然后針對(duì)結(jié)果執(zhí)行floor操作,返回小于或等于商的整數(shù):

Math.floorDiv(7, 2)); // returns 3

商為 3.5 ,所以 floor(3.5) == 3.

讓我們看另一個(gè)示例:

Math.floorDiv(-7, 2)); // returns -4

商為-3.5 ,所以 floor(-3.5) == -4.

modDiv()方法

該方法與前面floorDiv()方法類似, 但在模數(shù)或余數(shù)上應(yīng)用floor() 操作,而不是商:

Math.modDiv(5, 3)); // returns 2

我們看到 , modDiv() 方法兩個(gè)參數(shù)為正數(shù),和 % 操作符效果一樣。讓看看另一個(gè)不同示例:

Math.modDiv(-5, 3)); // returns 1

結(jié)果為 1 而不是 2 ,因?yàn)閒loorDiv(-5, 3) 是 -2 ,而不是 -1.

nextDown()方法

返回參數(shù)直接較低的值(支持 float 或 double 參數(shù)):

float f = Math.nextDown(3); // returns 2.9999998

double d = Math.nextDown(3); // returns 2.999999761581421

總結(jié)

我們描述了java8中java.lang.Math類中所有新的方法,并通過示例給與解釋說明。

補(bǔ)充知識(shí):math類常用方法詳細(xì)總結(jié)

說明:Math 類位于 java.lang 包中,主要提供了一些常用的數(shù)學(xué)函數(shù)和計(jì)算

備注:一些在工程計(jì)算中才用的方法此處不做介紹

一、取整運(yùn)算

1、Math.ceil(double x)

釋義:向上取整,返回大于該值的最近 double 值

System.out.println(Math.ceil(1.23)); // 2.0

System.out.println(Math.ceil(-1.23)); // -1.0

2、Math.floor(double x)

釋義:向下取整,返回小于該值的最近 double 值

System.out.println(Math.floor(1.23)); // 1.0

System.out.println(Math.floor(-1.23)); // -2.0

3、Math.round(double x)

釋義:四舍五入取整,參數(shù)類型:double、float

System.out.println(Math.round(1.43)); // 1
System.out.println(Math.round(1.53)); // 2
System.out.println(Math.round(-1.43)); // -1
System.out.println(Math.round(-1.53)); // -2

二、隨機(jī)運(yùn)算

Math.random()

釋義:內(nèi)部調(diào)用了 Random.nextDouble() 方法,生成一個(gè)偽均勻分布在 [0,1)之間的 double 值

System.out.println((int)(Math.random() * 10 + 1)); // 生成范圍再[1, 11)之間的偽隨機(jī)數(shù)

三、符號(hào)運(yùn)算

1、Math.abs(int x)

釋義:計(jì)算絕對(duì)值,參數(shù)類型:int、long、float、double

System.out.println(Math.abs(-1)); // 1

2、Math.negateExact(int x)

釋義:計(jì)算相反值,參數(shù)類型:int、long

System.out.println(Math.negateExact(-1)); // 1

四、大小運(yùn)算

1、Math.max(int x, int y)

釋義:獲取兩個(gè)參數(shù)中的最大值,參數(shù)類型:int、long、float、double

System.out.println(Math.max(1, 2)); // 2

2、Math.min(int x, int y)

釋義:獲取兩個(gè)參數(shù)中的最小值,參數(shù)類型:int、long、float、double

System.out.println(Math.min(1, 2)); // 1

3、Math.rint(double x)

釋義:獲取與參數(shù)最接近的double值

System.out.println(Math.rint(1.4)); // 1.0
System.out.println(Math.rint(1.5)); // 2.0
System.out.println(Math.rint(-1.4)); // -1.0
System.out.println(Math.rint(-1.5)); // -2.0

以上這篇java8 Math新增方法介紹就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java Servlet 實(shí)現(xiàn)動(dòng)態(tài)驗(yàn)證碼圖片示例

    java Servlet 實(shí)現(xiàn)動(dòng)態(tài)驗(yàn)證碼圖片示例

    這篇文章主要介紹了java Servlet 實(shí)現(xiàn)動(dòng)態(tài)驗(yàn)證碼圖片示例的資料,這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。
    2017-02-02
  • SpringBoot請(qǐng)求參數(shù)加密、響應(yīng)參數(shù)解密的實(shí)現(xiàn)

    SpringBoot請(qǐng)求參數(shù)加密、響應(yīng)參數(shù)解密的實(shí)現(xiàn)

    在項(xiàng)目開發(fā)工程中,有的項(xiàng)目可能對(duì)參數(shù)安全要求比較高,在整個(gè)http數(shù)據(jù)傳輸?shù)倪^程中都需要對(duì)請(qǐng)求參數(shù)、響應(yīng)參數(shù)進(jìn)行加密,本文主要介紹了SpringBoot請(qǐng)求參數(shù)加密、響應(yīng)參數(shù)解密的實(shí)現(xiàn),感興趣的可以了解一下
    2024-01-01
  • Java中valueOf和parseInt的區(qū)別詳解

    Java中valueOf和parseInt的區(qū)別詳解

    這篇文章主要介紹了Java中valueOf和parseInt的區(qū)別詳解,在編程中,遇到類型轉(zhuǎn)換,好像會(huì)經(jīng)常用到 parseInt 和 valueOf,當(dāng)然這里只拿 Integer 類型進(jìn)行陳述,其他類型也是雷同的,需要的朋友可以參考下
    2024-01-01
  • java調(diào)用opencv身份證號(hào)識(shí)別詳解

    java調(diào)用opencv身份證號(hào)識(shí)別詳解

    這篇文章主要為大家詳細(xì)介紹了java如何調(diào)用opencv實(shí)現(xiàn)身份證號(hào)的識(shí)別,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • Spring?Boot?中事務(wù)的用法示例詳解

    Spring?Boot?中事務(wù)的用法示例詳解

    本文詳細(xì)介紹了Spring Boot中事務(wù)管理的使用方法,包括事務(wù)的基本概念、配置、傳播行為、隔離級(jí)別以及回滾機(jī)制,通過使用@Transactional注解,可以方便地實(shí)現(xiàn)事務(wù)的控制,文章還討論了事務(wù)方法的可見性、自我調(diào)用問題以及超時(shí)設(shè)置等注意事項(xiàng),感興趣的朋友一起看看吧
    2025-02-02
  • Java基礎(chǔ)之堆內(nèi)存溢出的解決

    Java基礎(chǔ)之堆內(nèi)存溢出的解決

    這篇文章主要介紹了Java基礎(chǔ)之堆內(nèi)存溢出的解決,文中有非常詳細(xì)的圖文示例及代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Netty之使用DelimiterBasedFrameDecoder進(jìn)行消息分隔詳解

    Netty之使用DelimiterBasedFrameDecoder進(jìn)行消息分隔詳解

    這篇文章主要介紹了Netty之使用DelimiterBasedFrameDecoder進(jìn)行消息分隔詳解,在使用Netty進(jìn)行TCP消息傳輸時(shí),為了上層協(xié)議能夠?qū)ο⒄_區(qū)分,避免粘包和拆包導(dǎo)致的問題,一般可以通過消息定長(zhǎng)、將回車換行符作為消息結(jié)束符,需要的朋友可以參考下
    2023-12-12
  • mybatis中如何傳遞單個(gè)String類型的參數(shù)

    mybatis中如何傳遞單個(gè)String類型的參數(shù)

    這篇文章主要介紹了mybatis中如何傳遞單個(gè)String類型的參數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java讀取文件內(nèi)容,解析Json格式數(shù)據(jù)方式

    java讀取文件內(nèi)容,解析Json格式數(shù)據(jù)方式

    這篇文章主要介紹了java讀取文件內(nèi)容,解析Json格式數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java?實(shí)現(xiàn)判定順序表中是否包含某個(gè)元素(思路詳解)

    Java?實(shí)現(xiàn)判定順序表中是否包含某個(gè)元素(思路詳解)

    這篇文章主要介紹了Java?實(shí)現(xiàn)判定順序表中是否包含某個(gè)元素,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06

最新評(píng)論

布拖县| 平泉县| 房产| 宿州市| 廊坊市| 宁国市| 武山县| 苍山县| 丹棱县| 浦北县| 镇安县| 广德县| 枣强县| 朔州市| 遵化市| 张家口市| 天津市| 武功县| 渭源县| 疏勒县| 当阳市| 康马县| 永泰县| 安塞县| 佛冈县| 金沙县| 郸城县| 厦门市| 兴文县| 永康市| 水城县| 清涧县| 安新县| 深水埗区| 奉节县| 晋州市| 光山县| 朝阳县| 亚东县| 武安市| 长海县|