更新時間:2020-06-12 15:36:08 來源:動力節(jié)點 瀏覽2689次
1、Java字面量(Java直接量)
int i=1;把整數(shù)1賦值給int型變量i,整數(shù)1就是Java字面量,
同樣,String s="abc";中的abc也是字面量。
舉例:
int?i1?=?123;?//?十進制123
int?i2?=?+0b101;?//?二進制101
int?i3?=?-0123;?//?八進制123
int?i4?=?0xA9E3F;?//?十六進制A9E3F
?
long?l1?=?123456789l;
long?l2?=?0b101L;
long?l3?=?+0123L;
long?l4?=?-0xA9E3FL;
?
float?f1?=?3.14f;
float?f2?=?-3e-5f;
float?f3?=?+.5F;?//?float型數(shù)?正0.5
?
double?d1?=?3.0;
double?d2?=?+314e-2;
double?d3?=?-.5;?//?double型數(shù)?負0.5
?
boolean?b?=?true;
?
char?c1?=?'a';
char?c2?=?'中';
char?c3?=?'\\';?//?轉(zhuǎn)義字符,最終的字符是反斜杠
char?c4?=?'\123';?//?\+三位八進制數(shù)
char?c5?=?'\u000f';?//?Unicode?000f
?
String?s1?=?"abc";
String?s2?=?"中國";
String?s3?=?"\n\r";?//?轉(zhuǎn)義字符串,最終的字符串是換行回車
?
Object?o?=?null;
String?s?=?null;?//?因為String是引用類型,所以可以賦null
錯誤的字面量
比int的最大值還要大1的直接量2147483648是錯誤的,因為超過int表示的范圍,應(yīng)該使用2147483648L表示。
比long的最大值大1的直接量9223372036854775808L是錯誤的,因為超過long表示的范圍,應(yīng)該使用BigInteger類來表示:BigInteger b=new BigInteger("9223372036854775808");
下面四個字面量是錯誤的:
一個單引號:'''
一個反斜杠:'\'
帶有"引號的字符串:"abc"xyz"
帶有\(zhòng)反斜杠的字符串:"abc\xyz"
正確的寫法是轉(zhuǎn)義:
'\''
'\\'
"abc\"xyz"
"abc\\xyz"
說明
整數(shù)直接量的四種表示:十進制、二進制(JDK7支持)、八進制、十六進制。
八進制:以數(shù)字0開頭的整數(shù),如012,表示十進制的10;
十六進制:以數(shù)字0和字母X(或x)組合開頭的整數(shù),如0x12,表示十進制的18。
二進制:以數(shù)字0和字母B(或b)組合開頭的整數(shù),如0b11,表示十進制的3;
Java中,數(shù)字前多余的0,會自動去掉。如00.1表示0.1,0012表示八進制012。
Java中,小數(shù)可省略0.部分或.0部分,如.3表示0.3,3.表示3.0。
對于數(shù)字直接量,需要根據(jù)直接量類型以及各類型的取值范圍來規(guī)范賦值,不能將高取值范圍的直接量賦值給低取值范圍的類型,如:
float?f1?=?3.14;?//?錯誤,3.14是double型,float型取值范圍小于double
float?f2?=?3.14f;?//?正確
double?d1?=?3.14;?//?正確
double?d2?=?12;?//?正確,直接量12是int型,而double型取值范圍大于int,d2的值將變成12.0
筆者認為還有一種字面量,叫數(shù)組字面量,如{元素1,...,元素N},它只能賦給數(shù)組。
JDK1.7新增特性
二進制表示數(shù)字:以數(shù)字0和字母B(或b)組合開頭的整數(shù);
下劃線分割符:int one_million=1_000_000;
以上就是動力節(jié)點java培訓(xùn)機構(gòu)的小編針對“Java基礎(chǔ):Java布爾字面量”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743