一、數(shù)據(jù)類型
在Java中數(shù)據(jù)類型主要分為兩類:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。基本數(shù)據(jù)類型有四類八種:
- 四類:整型、浮點型、字符型以及布爾型
-
八種:
數(shù)據(jù)類型
關鍵字
內(nèi)存占用
范圍
字節(jié)型
byte
1?字節(jié)
-128~?127
短整型
short
2?字節(jié)
-32768?~?32767
整型
int
4?字
- 2^31~2^31-1
長整型
long
8?字節(jié)
-2^63?~?2^63-1
單精度浮點數(shù)
?oat
4?字節(jié)
有范圍,一般不關注
雙精度浮點數(shù)
double
8?字節(jié)
有范圍,一般不關注
字符型
char
2?字節(jié)
0?~?65535
布爾型
boolean
沒有明確規(guī)定
true?和 false
注意:
- 不論是在16位系統(tǒng)還是32位系統(tǒng),int都占用4個字節(jié),long都占8個字節(jié)。
- 整形和浮點型都是帶有符號的。
- 整型默認為int型,浮點型默認為double。
- 字符串屬于引用類型。
-
二、字面常量
-
常量即程序運行期間,固定不變的量稱為常量,比如:一個禮拜七天,一年12個月等。
-
其中:100、3.14、‘A’、true/false都是常量,將其稱為字面常量。字面常量的分類:
- 字符串常量:由""括起來的,比如“12345”、“hello”、“你好”。
- 整形常量:程序中直接寫的數(shù)字(注意沒有小數(shù)點),比如:100、1000
- 注意:字符串、整形、浮點型、字符型以及布爾型,在Java中都稱為數(shù)據(jù)類型。
- 浮點數(shù)常量:程序中直接寫的小數(shù),比如:3.14、0.49
- 字符常量:由?單引號?括起來的當個字符,比如:‘A’、‘1’
- 布爾常量:只有兩種true和false
- 空常量:null
三、變量
1、變量概念
在程序中,除了有始終不變的常量外,有些內(nèi)容可能會經(jīng)常改變,比如:人的年齡、身高、成績分數(shù)、數(shù)學函數(shù)的計算結果等,對于這些經(jīng)常改變的內(nèi)容,在Java程序中,稱為變量。而數(shù)據(jù)類型就是用來定義不同種類變量的。
2、語法格式
定義變量的語法格式為:
比如
3、整型變量
3.1、整型變量
注意事項
- int不論在何種系統(tǒng)下都是4個字節(jié)
- 推薦使用方式一定義,如果沒有合適的初始值,可以設置為0
- 在給變量設置初始值時,值不能超過int的表示范圍,否則會導致溢出
- 變量在使用之前必須要賦初值,否則編譯報錯
- int的包裝類型為?Integer
3.2、長整型變量
注意事項:
- 長整型變量的初始值后加L或者l,推薦加L
- 長整型不論在那個系統(tǒng)下都占8個字節(jié)
- 長整型的表示范圍為:-2^63? ?~2^63-1?
- long的包裝類型為Long
3.3、短整型變量
注意事項
- short在任何系統(tǒng)下都占2個字節(jié)
- short的表示范圍為:-32768?~?32767
- 使用時注意不要超過范圍(一般使用比較少)
- short的包裝類型為Short
3.4字節(jié)型變量
注意事項:
- byte在任何系統(tǒng)下都占1個字節(jié)
- byte的范圍是:-128?~?127
- 字節(jié)的包裝類型為Byte
4、浮點型變量
4.1雙精度浮點型
神奇的代碼一:
在 Java?中, int?除以?int?的值仍然是?int(會直接舍棄小數(shù)部分)。如果想得到?0.5,?需要使用?double?類型計算.
神奇的代碼二:
注意事項:
- double在任何系統(tǒng)下都占8個字節(jié)
- 浮點數(shù)與整數(shù)在內(nèi)存中的存儲方式不同,不能單純使用?2^n的形式來計算
- double的包裝類型為Double
- double 類型的內(nèi)存布局遵守 IEEE 754 標準(和C語言一樣), 嘗試使用有限的內(nèi)存空間表示可能無限的小數(shù), 勢必會存在一定的精度誤差,因此浮點數(shù)是個近似值,并不是精確值。
4.2單精度浮點型
? ? ? ??oat 類型在 Java 中占四個字節(jié), 同樣遵守 IEEE 754 標準. 由于表示的數(shù)據(jù)精度范圍較小, 一般在工程上用到浮點數(shù)都優(yōu)先考慮?double,?不太推薦使用??oat.??oat的包裝類型為Float。
5、字符型變量
注意事項
- Java?中使用單引號?+ 單個字母的形式表示字符字面值.
- 計算機中的字符本質(zhì)上是一個整數(shù). 在 C 語言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此一個字符占用兩個字節(jié), 表示的字符種類更多, 包括中文.
6、布爾型變量
注意事項
- boolean?類型的變量只有兩種取值, true?表示真, false?表示假.
- Java?的 boolean?類型和?int?不能相互轉換, 不存在?1?表示?true,?0?表示?false?這樣的用法.
- Java虛擬機規(guī)范中,并沒有明確規(guī)定boolean占幾個字節(jié),也沒有專門用來處理boolean的字節(jié)碼指令,在??Oracle公司的虛擬機實現(xiàn)中,boolean占1個字節(jié)。
- boolean的包裝類型為Boolean。
四、類型轉換
在Java中,當參與運算數(shù)據(jù)類型不一致時,就會進行類型轉換。Java中類型轉換主要分為兩類:自動類型轉換(隱式)?和?強制類型轉換(顯式)。
1、自動類型轉換(隱式)
自動類型轉換即:代碼不需要經(jīng)過任何處理,在代碼編譯時,編譯器會自動進行處理。特點:數(shù)據(jù)范圍小的轉為數(shù)據(jù)范圍大的時會自動進行。
???????
2、強制類型轉換(顯式)
強制類型轉換:當進行操作時,代碼需要經(jīng)過一定的格式處理,不能自動完成。特點:數(shù)據(jù)范圍大的到數(shù)據(jù)范圍小的。
注意事項
1.不同數(shù)字類型的變量之間賦值, ?表示范圍更小的類型能隱式轉換成范圍較大的類型
2.如果需要把范圍大的類型賦值給范圍小的, 需要強制類型轉換, 但是可能精度丟失
3.將一個字面值常量進行賦值的時候, Java?會自動針對數(shù)字范圍進行檢查
4.強制類型轉換不一定能成功,不相干的類型不能互相轉換
五、類型提升
不同類型的數(shù)據(jù)之間相互運算時,數(shù)據(jù)類型小的會被提升到數(shù)據(jù)類型大的。
1.int與long之間:int會被提升為long
2.byte與byte的運算
結論: byte?和 byte?都是相同類型, 但是出現(xiàn)編譯報錯. 原因是, 雖然?a?和 b?都是?byte,?但是計算?a?+ b?會先將?a和 b?都提升成?int,?再進行計算, 得到的結果也是?int,?這是賦給?c,?就會出現(xiàn)上述錯誤.由于計算機的?CPU?通常是按照?4?個字節(jié)為單位從內(nèi)存中讀寫數(shù)據(jù). 為了硬件上實現(xiàn)方便, 諸如?byte?和 short這種低于?4?個字節(jié)的類型, 會先提升成?int,?再參與計算.
正確的寫法:
六、字符串類型
在Java中使用String類定義字符串類型,比如:
在有些情況下,需要將字符串和整形數(shù)字之間進行轉換:
1、int?轉成?String
2、String?轉成?int文章來源:http://www.zghlxwxcb.cn/news/detail-826360.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-826360.html
到了這里,關于【Java記】數(shù)據(jù)類型與變量的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!