Java數(shù)據(jù)類型與變量詳解
1.字面常量
字面常量即程序運行期間,固定不變的的量為常量,這些值無法改變。如下圖的

其中100,3.14,‘A’,true,false都是常量,將他們稱為字面常量。
1.1字面常量的分類
1.字符串常量:由“ ”括起來的,比如“12345”,“hello”,“你好”。
2.整型常量:程序中直接寫的數(shù)字(沒有小數(shù)點的),比如100,-12。
3.浮點型常量:程序中直接寫的小數(shù),比如3.12,0.49。
4.字符常量:由單引號‘ ’括起來的單個字符,比如‘A’,'M'。
5.布爾常量:只有兩種true和false。
6.空常量:null此處不過多介紹。
注意:字符串,整型,浮點型,以及布爾類型,在java中都稱為數(shù)據(jù)類型。
2.數(shù)據(jù)類型
在Java中的數(shù)據(jù)類型分為兩類:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。
基本數(shù)據(jù)類型分為四類八種:
1.四類:整型,浮點型,字符型,布爾型。
2.八種:

注意:
>不論是在16位系統(tǒng)還是32位系統(tǒng),int都占用4個字節(jié),long都占8個字節(jié)
>整型和浮點型都是帶有符號的
>整型默認是int型,浮點型默認認為double
>字符串屬于引用類型,該種類型是后序介紹
什么是字節(jié)?

3.變量
3.1變量的概念
在程序中,除了有始終不變的變量外,有些內(nèi)容可能會經(jīng)常改變,比如:人的年齡、身高、成績分數(shù)、數(shù)學函數(shù)計算結(jié)果等,對于這些經(jīng)常改變的內(nèi)容,在java程序中,稱為變量。而數(shù)據(jù)類型就是用來定義不同類型的變量。
3.2語法格式
定義變量的語法格式為:數(shù)據(jù)類型 + 變量名 = 初始值;
比如:下圖:

3.3整型變量
3.3.1整型變量

注意事項:
1.int不論在何種系統(tǒng)下都是4個字節(jié)
2.推薦使用方式一定義,如果沒有合適的初始值,可以設置為0
3.在給變量設置初始值時,值不能超過int的表示范圍,否則會導致溢出
4.變量在使用之前必須要賦初始值,否則會編譯錯誤
5.int的包裝類型為Integer
3.3.2長整型變量

注意事項:
1.長整型變量的初始值后加L或l,推薦加L,l像1
2.長整型不論在那個系統(tǒng)下都占8個字節(jié)
3.長整型的表示范圍為:-2^63--2^63 - 1
4.long的包裝類型為Long
3.3.3短整型變量

注意事項:
1.short在任何系統(tǒng)下都占2個字節(jié)
2.short的表示范圍:-32768--32767
3.使用時注意不要超過范圍(一般使用比較少)
4.short的包裝類型為Short
3.3.4字節(jié)型變量

注意事項:
1.byte在任何系統(tǒng)下都占1個字節(jié)
2.byte的范圍是:-128--127
3.字節(jié)的包裝類型為Byte
請大家思考一下,byte,short,int,long都可以定義整型變量,為什么要給出4種不同類型?
3.4浮點型變量
3.4.1雙精度浮點型

神奇的代碼一:

此處輸出的結(jié)果為0,不是0.5.因為是整型,不會打印小數(shù)。
在java中,int除以int的值仍是int(會直接舍棄小數(shù)部分)。如果想要double類型計算。

神奇的代碼二:

此處的值是不是1.21 而是 
注意事項:
1.double在任何系統(tǒng)下都占8個字節(jié)
2.浮點型與整型在內(nèi)存中的存儲方式不同,不能單純使用的形式來計算
3.double的包裝類型Double
4.double類型的內(nèi)存布局遵守IEEE 754標準(和C語言一樣),嘗試有限的內(nèi)存空間表示可能無限用到浮點型都優(yōu)先考慮double,不太推薦float。float的包裝類型是Float
3.5字符型變量

注意事項:
1.Java中使用 單引號 + 單個字母 的形式表示字符字面值
2.計算機中的字符本質(zhì)上是一個整型,在C語言中使用ASCII表示字符,而Java中使用Unicode表示字符。因此一個字符占用兩個字節(jié),表示的字符種類更多,包括中文。
3.char的包裝類型為Character
3.6布爾型變量
布爾類型常用表示真假,在現(xiàn)實生活中也是經(jīng)常出現(xiàn),比如:某個同學中獎一個億。臥槽真的假的

注意事項:
1.boolean類型的變量只有兩種取值,ture表示真,false表示假
2.Java的boolean類型和int不能相互轉(zhuǎn)化,不存在1表示ture,0表示false這樣的用法
3.Java虛擬機規(guī)范中,并沒有明確規(guī)定boolean占?個字節(jié),也沒有專??來處理boolean的字節(jié)碼 指令,在Oracle的Java虛擬機實現(xiàn)中,Java編程語?中的布爾數(shù)組被編碼為Java虛擬機字節(jié)數(shù) 組,每個布爾元素使?8位。參考官??冊:Chapter2.TheStructureoftheJavaVirtual Machine
4.boolean的包裝類型為Boolean。
3.7類型轉(zhuǎn)換
Java 作為?個強類型編程語?,當不同類型之間的變量相互賦值的時候,會有教嚴格的校驗.

在Java中,當參與運算數(shù)據(jù)類型不?致時,就會進?類型轉(zhuǎn)換。Java中類型轉(zhuǎn)換主要分為兩類:?動 類型轉(zhuǎn)換(隱式)和強制類型轉(zhuǎn)換(顯式)。
3.7.1自動類型轉(zhuǎn)換(隱式)
?動類型轉(zhuǎn)換即:代碼不需要經(jīng)過任何處理,在代碼編譯時,編譯器會?動進?處理。特點:數(shù)據(jù)范 圍?的轉(zhuǎn)為數(shù)據(jù)范圍?的時會?動進?。

int類型的值自動轉(zhuǎn)換為long類型
3.7.2強制類型轉(zhuǎn)換(顯示)
強制類型轉(zhuǎn)換:當進?操作時,代碼需要經(jīng)過?定的格式處理,不能?動完成。特點:數(shù)據(jù)范圍?的 到數(shù)據(jù)范圍?的。

字節(jié)大的轉(zhuǎn)換字節(jié)小的,必須強制轉(zhuǎn)換

此處257超出byte的范圍,100默認int自動轉(zhuǎn)換byte
注意事項:
1.不同數(shù)字類型的變量之間賦值,表示范圍更小的類型能隱式轉(zhuǎn)換換成范圍較大的類型
2.如果需要把范圍大的類型賦值給范圍小的,需要強制類型轉(zhuǎn)換,但是可能精度丟失
3.將一個字面常量進行賦值的時候,java會自動針對數(shù)字范圍進行檢查
4.強制類型轉(zhuǎn)換不一定成功,不相干的類型的不能互相轉(zhuǎn)換
3.8類型提升
不同類型的數(shù)據(jù)之間相互運算時,數(shù)據(jù)類型?的會被提升到數(shù)據(jù)類型?的。
3.8.1 int與long之間:int會被提升為long

int + long >> long + long 賦值給int時會丟失數(shù)據(jù),int是4個字節(jié),long是8個字節(jié)
int + long >> long + logn 賦值給long
3.8.2 byte和byte的運算

此處會編譯錯誤,a和b都是byte型,但計算時會將a和b會提升成int型,再賦給c 會出現(xiàn)錯誤
由于計算機的CPU通常是按照4個字節(jié)為單位從內(nèi)存中讀寫數(shù)據(jù),為了硬件上實現(xiàn)方便,諸如byte和short這種低于4個字節(jié)的類型,會提升成int,再參與計算。

這樣修改就可以了
【類型提升小結(jié)】
1.不同類型的數(shù)據(jù)混合運算,范圍小的會提升成范圍大的
2.對于short,byte這種比4個字節(jié)小的類型,會先提升成4個字節(jié)的int,再運算
3.9字符串類型

hello world
3.9.1int 轉(zhuǎn)成string

3.9.2string 轉(zhuǎn)成 int

于此這里就結(jié)束了,感謝大家的觀看。
到此這篇關于Spring Bean作用域詳解之從單例到自定義作用域的全面指南的文章就介紹到這了,更多相關Spring Bean作用域內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Launch4j打包將jar包生成exe執(zhí)行文件實踐
Launch4j是一個開源工具,用于將Java應用程序的JAR包轉(zhuǎn)換為Windows原生可執(zhí)行文件(.exe),支持自定義圖標、JRE版本綁定、啟動參數(shù)配置等2026-01-01
Java中Scanner的常用方法總結(jié)(一次學懂)
這篇文章主要給大家介紹了關于Java中Scanner常用方法的相關資料,Java中的Scanner是一個用于讀取用戶輸入的類,它可以讀取各種類型的數(shù)據(jù),包括整數(shù)、浮點數(shù)、字符串等等,需要的朋友可以參考下2023-11-11
JWT在OpenFeign調(diào)用中進行令牌中繼詳解
Feign是一個聲明式的Web Service客戶端,是一種聲明式、模板化的HTTP客戶端。而OpenFeign是Spring Cloud 在Feign的基礎上支持了Spring MVC的注解,如@RequesMapping等等,這篇文章主要給大家介紹了關于JWT在OpenFeign調(diào)用中進行令牌中繼的相關資料,需要的朋友可以參考下2021-10-10
Java Swing中的文本區(qū)(JTextArea)實現(xiàn)換行保存到文件的幾個方法
這篇文章主要介紹了Java Swing中的文本區(qū)(JTextArea)實現(xiàn)換行保存到文件的幾個方法,本文給出了4種方法,需要的朋友可以參考下2014-10-10
聊聊@value注解和@ConfigurationProperties注解的使用
這篇文章主要介紹了@value注解和@ConfigurationProperties注解的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09

