java中给变量赋值_java中变量赋值的理解
1.當(dāng)賦值的值超出聲明變量的范圍時(shí)候,會(huì)報(bào)錯(cuò)!
byte a =200 //會(huì)報(bào)錯(cuò),因超出范圍。
byte a =(byte)200;//進(jìn)行一個(gè)強(qiáng)制轉(zhuǎn)換,就不會(huì)報(bào)錯(cuò),不過(guò)會(huì)超出范圍,超出部分會(huì)從頭開(kāi)始加,
由于byte的范圍為-128~127,所以是-128+73為所得結(jié)果。
2.聲明一個(gè)整數(shù)類型時(shí)候,默認(rèn)都是int類型(4個(gè)8位);如果具體的數(shù)值比聲明變量的取值范圍小,則不報(bào)錯(cuò)。
例:short a =222;
3.long l = 88888888888l 很明顯,這一長(zhǎng)串?dāng)?shù)字是好超過(guò)int的取值范圍的,所以會(huì)報(bào)錯(cuò),但是因?yàn)椴怀^(guò)long的取值范圍,
所以我們可以聲明一個(gè)long變量來(lái)裝它, 不過(guò)需要在后邊加“l(fā)”(不區(qū)分大小寫)。
4.聲明一個(gè)float變量,如 float f = 12.555;因?yàn)槁暶饕粋€(gè)小數(shù)默認(rèn)的類型是double類型(8個(gè)八位),所以;由高精度轉(zhuǎn)換為低精度的float(4個(gè)8位)型時(shí),會(huì)丟失精度報(bào)錯(cuò),在后邊加”f“就將其轉(zhuǎn)換成float類型,就不會(huì)報(bào)錯(cuò)了。
5.char 用來(lái)聲明一個(gè)字符,char c = 'e'; System.out.println(c);輸出的是這個(gè)字符,不過(guò)進(jìn)行運(yùn)算時(shí)候
使用變量的ascll編碼的位置。
char c2 = '\n';表示換行; 進(jìn)行運(yùn)算時(shí)候運(yùn)算的也是其位置!
6.類型轉(zhuǎn)換優(yōu)先級(jí):double float long int char short byte
7.short s = 133;
char c = 'a';
short s1 = s+c; 輸出結(jié)果會(huì)報(bào)錯(cuò),因?yàn)閮蓚€(gè)數(shù)相加,默認(rèn)為int類型,用short來(lái)裝它,會(huì)報(bào)損失精度的錯(cuò)誤,
此時(shí)需要加上一個(gè)強(qiáng)制轉(zhuǎn)換:short s1 = (short)(s+c);
8.隱式轉(zhuǎn)換:由低精度自動(dòng)轉(zhuǎn)換為高精度;例:long l = 5834;默認(rèn)數(shù)值類型都為int類型,但是,你既然
用long來(lái)聲明,你的精度比我還高,那我就不說(shuō)什么了,默默地轉(zhuǎn)過(guò)去吧。
9.顯示轉(zhuǎn)換:也叫強(qiáng)制轉(zhuǎn)換,一般由高精度轉(zhuǎn)向低精度。比如short s1 = (short)(s+c);我本來(lái)比你精度高,我是
int,你卻用低精度的short來(lái)裝我,我肯定不同意(報(bào)錯(cuò)),說(shuō)以,得強(qiáng)制轉(zhuǎn)換,不同意也得同意。
10.+= 的賦值原理:byte b = 4;char c = 0.4;b += c;由于char優(yōu)先級(jí)比byte要高,所以b = b+c,
是要報(bào)錯(cuò)的,不過(guò)b += c,卻不報(bào)錯(cuò),因?yàn)樗劝裞的值賦給b,賦值之后,b就成char
類型了,然后再加上b的值,char的優(yōu)先級(jí)要高,所以不會(huì)報(bào)錯(cuò)。
總結(jié)
以上是生活随笔為你收集整理的java中给变量赋值_java中变量赋值的理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python采集_Python采集实例1
- 下一篇: java链表list_数据结构-List