从底层重学 Java 之两大浮点类型 GitChat链接
生活随笔
收集整理的這篇文章主要介紹了
从底层重学 Java 之两大浮点类型 GitChat链接
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
chat連接
https://gitbook.cn/gitchat/activity/5f03fdd3852a4f3686fb3366
簡(jiǎn)介
從底層,從原理,我們來(lái)重學(xué)一次 Java。兩大 Java 浮點(diǎn)類(lèi) Double、Float 是我們比較常用的對(duì)象,他們的源碼及實(shí)現(xiàn)是怎樣的呢?
本系列秉承所有結(jié)論盡量從源碼中來(lái),沒(méi)有源碼的盡量標(biāo)明出處。相關(guān)源碼會(huì)附著在文章中,讀本文即可,不用再自行查找源碼及資料學(xué)習(xí),方便大家充分利用路上的碎片時(shí)間。
本篇 Chat 對(duì)兩大浮點(diǎn)類(lèi)型的常量、構(gòu)造函數(shù)、常用函數(shù)等進(jìn)行逐一源碼分析,幫助大家深入理解和學(xué)習(xí) JDK 源碼的牛掰優(yōu)化。
本文包含以下內(nèi)容:
-
Double
- IEEE 754 double的存儲(chǔ)原理
- 符號(hào)位
- 指數(shù)位
- 尾數(shù)位
- 示例25.375
- 二進(jìn)制轉(zhuǎn)換
- 轉(zhuǎn)成科學(xué)計(jì)數(shù)法
- 拆分
- 存儲(chǔ)
- 浮點(diǎn)字面值(FloatingPointLiteral)
- 十進(jìn)制浮點(diǎn)字面值(DecimalFloatingPointLiteral)
- 十六進(jìn)制浮點(diǎn)字面值(HexadecimalFloatingPointLiteral)
- 常量
- 構(gòu)造函數(shù)
- parseDouble(String s)
- FloatingDecimal.parseDouble(s)
- 特殊值判斷
- boolean isNaN()
- boolean isInfinite()
- static boolean isInfinite(double v)
- static boolean isFinite(double d)
- valueOf
- Double valueOf(double d)
- Double valueOf(String s)
- 類(lèi)型轉(zhuǎn)換
- toString
- String toString()
- String toString(double d)
- hashCode
- int hashCode()
- static int hashCode(double value)
- static long doubleToLongBits(double value)
- static native long doubleToRawLongBits(double value)
- 計(jì)算比較
- boolean equals(Object obj)
- double sum(double a, double b)
- double max(double a, double b)
- Math.max(double a, double b)
- double min(double a, double b)
- double Math.min(double a, double b)
- IEEE 754 double的存儲(chǔ)原理
-
Float
- IEEE 754 float的存儲(chǔ)原理
- 符號(hào)位
- 指數(shù)位
- 尾數(shù)位
- 示例25.375
- 二進(jìn)制轉(zhuǎn)換
- 轉(zhuǎn)成科學(xué)計(jì)數(shù)法
- 拆分
- 存儲(chǔ)
- 浮點(diǎn)字面值(FloatingPointLiteral)
- 十進(jìn)制浮點(diǎn)字面值(DecimalFloatingPointLiteral)
- 十六進(jìn)制浮點(diǎn)字面值(HexadecimalFloatingPointLiteral)
- 常量
- 構(gòu)造函數(shù)
- Float(float value)
- Float(double value)
- Float(String s)
- float parseFloat(String s)
- FloatingDecimal.parseFloat(String s)
- 特殊值判斷
- boolean isNaN()
- boolean isInfinite()
- static boolean isInfinite(float v)
- static boolean isFinite(float d)
- valueOf
- Float valueOf(float d)
- Float valueOf(String s)
- 類(lèi)型轉(zhuǎn)換
- toString
- String toString()
- String toString(float d)
- hashCode
- int hashCode()
- static int hashCode(float value)
- static int floatToIntBits(float value)
- static native int floatToRawIntBits(float value)
- 計(jì)算比較
- boolean equals(Object obj)
- float sum(float a, float b)
- float max(float a, float b)
- Math.max(float a, float b)
- float min(float a, float b)
- Math.min(float a, float b)
- IEEE 754 float的存儲(chǔ)原理
適用人群:有一些 Java 基礎(chǔ)的人群。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的从底层重学 Java 之两大浮点类型 GitChat链接的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: gitbash如何修改可恶的蓝色字体
- 下一篇: Java操作Mongo bulkWrit