java Integer Long型別的比較

2021-09-02 06:19:33 字數 466 閱讀 6468

今天有同事問我,兩個integer型別的數值進行比較的時候,為什麼老是不相等,之前也接觸過,只是記得不太清楚了,好像是包裝型別快取了乙個位元組的數值吧,然後直接讓他換成compareto進行比較,閒下來,自己又翻了下api,直接貼一下原始碼了

integer和long的包裝型別,自己快取了乙個位元組的數值,如果進行比較的時候,是呼叫其valueof方法,返回物件進行比較,如果這個時候,數值正好在-128---127之間,那麼返回的是快取中的數值,這樣進行比較能看到正常的效果,也就是我們用原子型別比較的結果,如果超過這個數值,則是new了乙個物件出去,這個時候用==進行比較則是物件直接比較了,就會和預期的結果有差別。

Redis 中 String 型別的記憶體開銷比較大

如果我們有大量的資料需要來儲存,在選型資料型別我們就需要知道 string 的記憶體開銷是很大的 這裡我們來分析下使用乙個 string 型別需要用到的記憶體 redis 中的 string,使用的是簡單動態字串 dynamic strings,sds 來看下資料結構 struct sdshdr 如...

為什麼float比long型別的資料範圍大

float比long型別的資料範圍大。float 4個位元組 long 8個位元組 為什麼float的4個位元組比long型別的8個位元組的範圍大?因為整數與小數的底層儲存有點不同。相同點 它們都是用二進位制儲存的 不同點 小數先轉成二進位制,然後處理,然後儲存。符號位 其中最左邊的為符號位,0為正...

mysql中 text和blob欄位型別比較區別

1.blob是二進位製大物件,可以容納可變數數量的資料,其中blob分為4中型別 tinyblob,blob,mediumblob和longblob,他們容納的長度是不同的.text同樣也分為四種型別 tinytext text mediumtext和longtext 2.blob被視為二進位制字串...