java数据类型_JAVA的数据类型
- 什么是數(shù)據(jù)類型:百度百科 數(shù)據(jù)類型在數(shù)據(jù)結(jié)構(gòu)中的定義是一個值的集合以及定義在這個值集上的一組操作(簡單來說就java對數(shù)據(jù)進(jìn)行了分類,存在不同的類型)
- 那么為什么需要數(shù)據(jù)分類呢?
- 下面我們用一張圖來說明一下數(shù)據(jù)類型的分類
- 上圖中我們可以看到有8種基本數(shù)據(jù)類型,它存儲的是數(shù)據(jù)值本身。
- 而引用數(shù)據(jù)類型存儲的是數(shù)據(jù)的內(nèi)存空間地址
引用數(shù)據(jù)類型:類(class);一個類就是一個數(shù)據(jù)類型
- 相信我們的小伙伴肯定知道計算機中存儲的單位,而在計算機底層的本質(zhì)存儲數(shù)據(jù)的形式就是二進(jìn)制數(shù)據(jù)。
1KB=1024Byte
1M=1024KB
1G=1024M
- 整數(shù)類型:byte short int long
其實java提供了一個類:BigInteger.來用于處理較大的整數(shù)
值得注意的是因為整數(shù)類型默認(rèn)的是int類型,在long類型賦值的時候,需要在后面加上L(l)。
在java7開始,已經(jīng)支持?jǐn)?shù)據(jù)之間用_(下劃線)分隔,例如(12_34_56輸出為123456)
- 浮點型 float double
float表示單精度(32位),給變量賦值時需要加上F(f)
double表示雙精度(64位)
對于單精度浮點數(shù),運行速度相比double更快,占用內(nèi)存更小,但是當(dāng)數(shù)值非常大或者精確位數(shù)多會變的不準(zhǔn)確
在浮點數(shù)中默認(rèn)的類型是double
使用時需要注意:有時會精度丟失
例如double num=1.0(表示一個無限接近于1.0的值)
我們可以總結(jié)一個結(jié)論:浮點數(shù)運算很少是精確的,只要超過精度就會有誤差,往往誤差不是因為數(shù)的大小,而是因為數(shù)的精度,因此產(chǎn)生的結(jié)果接近但是不等于想要的結(jié)果,尤其使用float和double做精確運算時更要注意
那么需要運算更精確的值怎么辦呢?java提供了BigDecimal來表示
- 字符 char
存儲單位16 位[0-65535] [2個字節(jié),16位]。字符常量使用單引號 ‘ ’包裹起來
字符數(shù)據(jù)可以當(dāng)成一個整數(shù)來使用
使用一個數(shù)字表示,對應(yīng)有一個ASCII碼表[ 字符編碼 ]:百度了解
- 布爾類型 boolean
2.引用數(shù)據(jù)類型
- 引用類型String
[注意:Java中設(shè)計的類和我們自己設(shè)計的類的性質(zhì)是一樣的]
當(dāng)String 和 + 一起使用的時候,這時候+ 是拼接字符串的功能
一個類其實就是一種引用數(shù)據(jù)類型
自己寫的一個類也是一種數(shù)據(jù)類型,類型為類名
誤區(qū) : 很多人一開始覺得 Java中提供的類才是一種類型,而我們自己寫覺得不是!
數(shù)據(jù)類型的轉(zhuǎn)換
Web前臺傳的都是字符串?dāng)?shù)據(jù),如果后臺需要運算,得轉(zhuǎn)換
2.轉(zhuǎn)換類型
①自動類型轉(zhuǎn)換:小數(shù)據(jù)類型轉(zhuǎn)大數(shù)據(jù)類型【存儲空間的大小】
②強制類型轉(zhuǎn)換:
1)大數(shù)據(jù)類型轉(zhuǎn)小數(shù)據(jù)類型[存儲空間大小]
2)相同存儲空間不同類型表達(dá)值范圍不一樣[例如:char及short]
3.注意說明
①char型具有兩個字節(jié),其數(shù)值范圍是0 ~ 2^16-1
②short類型也具有兩個字節(jié),其值的范圍是-2^15 ~ 2^15-1
這直接導(dǎo)致byte型不能自動類型提升到char,char和short直接也不會發(fā)生自動類型提升(因為值范圍問題),同時,byte當(dāng)然可以直接提升到short型。
所以,char 不能和byte short 相互自動轉(zhuǎn)換
4.我們著重講一下強制轉(zhuǎn)換
①強制類型轉(zhuǎn)換的語法
數(shù)據(jù)類型 變量名 = (數(shù)據(jù)類型)值;//值可能是更高的類型
②強制類型轉(zhuǎn)換的注意事項
(1) 高轉(zhuǎn)低會導(dǎo)致精度丟失,不同類型的強制轉(zhuǎn)換,可能會導(dǎo)致精度的下降.
(2) 實際開發(fā)中:應(yīng)該要知道被強制轉(zhuǎn)換的數(shù)據(jù),是在一個已知的范圍;
有什么補充歡迎大家評論~來自新手小白的數(shù)據(jù)類型初體驗
總結(jié)
以上是生活随笔為你收集整理的java数据类型_JAVA的数据类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python自学_为什么要选择Pytho
- 下一篇: fieldset 在td中怎样设置高度_