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

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

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

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

3.3整型變量
3.3.1整型變量

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

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

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

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

神奇的代碼一:

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

神奇的代碼二:

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

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

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

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

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

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

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

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

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

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

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

3.9.2string 轉(zhuǎn)成 int

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

