从底层重学 Java 之两大浮点类型 GitChat链接
生活随笔
收集整理的這篇文章主要介紹了
从底层重学 Java 之两大浮点类型 GitChat链接
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
chat連接
https://gitbook.cn/gitchat/activity/5f03fdd3852a4f3686fb3366
簡介
從底層,從原理,我們來重學一次 Java。兩大 Java 浮點類 Double、Float 是我們比較常用的對象,他們的源碼及實現是怎樣的呢?
本系列秉承所有結論盡量從源碼中來,沒有源碼的盡量標明出處。相關源碼會附著在文章中,讀本文即可,不用再自行查找源碼及資料學習,方便大家充分利用路上的碎片時間。
本篇 Chat 對兩大浮點類型的常量、構造函數、常用函數等進行逐一源碼分析,幫助大家深入理解和學習 JDK 源碼的牛掰優化。
本文包含以下內容:
-
Double
- IEEE 754 double的存儲原理
- 符號位
- 指數位
- 尾數位
- 示例25.375
- 二進制轉換
- 轉成科學計數法
- 拆分
- 存儲
- 浮點字面值(FloatingPointLiteral)
- 十進制浮點字面值(DecimalFloatingPointLiteral)
- 十六進制浮點字面值(HexadecimalFloatingPointLiteral)
- 常量
- 構造函數
- 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)
- 類型轉換
- 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)
- 計算比較
- 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的存儲原理
-
Float
- IEEE 754 float的存儲原理
- 符號位
- 指數位
- 尾數位
- 示例25.375
- 二進制轉換
- 轉成科學計數法
- 拆分
- 存儲
- 浮點字面值(FloatingPointLiteral)
- 十進制浮點字面值(DecimalFloatingPointLiteral)
- 十六進制浮點字面值(HexadecimalFloatingPointLiteral)
- 常量
- 構造函數
- 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)
- 類型轉換
- 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)
- 計算比較
- 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的存儲原理
適用人群:有一些 Java 基礎的人群。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的从底层重学 Java 之两大浮点类型 GitChat链接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gitbash如何修改可恶的蓝色字体
- 下一篇: Java操作Mongo bulkWrit