大家好温亲,小樂又來了棚壁,上一篇:樂字節(jié)Java變量與數(shù)據(jù)類型之二:Java常量與變量,
今天接著講Java變量與數(shù)據(jù)類型之三:數(shù)據(jù)類型與轉(zhuǎn)義字符
一铸豁、數(shù)據(jù)類型
1灌曙、定義
Java是一種強類型語言,針對每種數(shù)據(jù)都提供了對應(yīng)的數(shù)據(jù)類型节芥。
Java數(shù)據(jù)類型
2在刺、分類
A:基本數(shù)據(jù)類型:4類8種
B:引用數(shù)據(jù)類型:類,接口头镊,數(shù)組蚣驼。
3、基本數(shù)據(jù)類型
①整型 占用字節(jié)數(shù) 比特/位 取值范圍
byte(字節(jié)型) 1 8位 [-128 , 127]
short(短整型) 2 16位 [-32768,32767]
int (整型 ) 4 32位 [-21億, 21億]
long(長整型) 8 64位 很大很大
注意:整數(shù)數(shù)值默認(rèn)為int類型相艇,如果需要定義一個long類型的變量颖杏,當(dāng)超出int的范圍時,需要在該值后加 l或者L
②浮點型
float(單精度) 4
double(雙精度) 8
float有效位是7位坛芽,double有效位是14位
注意:浮點數(shù)默認(rèn)為double類型留储,如果需要定義一個float類型的變量翼抠,則數(shù)值后需要加 f或者F
③字符型(0~65535)
char(字符型) 2 一個字符能存儲一個中文漢字
要求:用 ' '將字符括起來
④邏輯型(布爾型)
boolean(布爾類型) 1位
4、注意:
整數(shù)默認(rèn)是int類型获讳,浮點數(shù)默認(rèn)是double阴颖。
長整數(shù)要加L或者l,單精度的浮點數(shù)要加F或者f丐膝。
二量愧、數(shù)據(jù)類型轉(zhuǎn)換
1、定義
boolean類型不參與轉(zhuǎn)換
2帅矗、默認(rèn)轉(zhuǎn)換
A:從小到大
B:byte,short,char --> int long float double
C:byte,short,char之間是平級的偎肃,不相互轉(zhuǎn)換,直接轉(zhuǎn)成int類型參與運算浑此。
3累颂、強制轉(zhuǎn)換
A:從大到小
B:可能會有精度的損失,一般不建議這樣使用尤勋。
C:格式:
目標(biāo)數(shù)據(jù)類型 變量名 = (目標(biāo)數(shù)據(jù)類型) (被轉(zhuǎn)換的數(shù)據(jù));
4喘落、思考題和面試題:
A:下面兩種方式有區(qū)別嗎?
float f1 = 12.345f;
float f2 = (float)12.345;向下類型轉(zhuǎn)換,浮點數(shù)默認(rèn)是double類型
B:下面的程序有問題嗎最冰,如果有瘦棋,在哪里呢?
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;
short s1=3;
short s2=3;
short s3=s1+s2;
char c1=3;
char c2=4;
char c3=c1+c2;
byte、short暖哨、char在運算時赌朋,會自動向上轉(zhuǎn)型為int型,所以返回的結(jié)果是int類型篇裁,而接收的類型均不是int沛慢,由于類型不匹配,所以報錯
byte b4 = 3 + 4;
short s=3+4;
常量進行計算后的值达布,預(yù)編譯時能夠判斷其是否超出范圍
int a=1;
int b=2;
int c=a+b;
long l1=3l;
long l2=3l;
long l3=l1+l2;
float f1=2.3f;
float f2=2.3f;
float f3=f1+f2;
double d1=3.7;
double d2=3.9;
double d3=d1+d2;
均不會報錯团甲,java進行了優(yōu)化。
C:下面的操作結(jié)果是什么呢?
byte b = (byte)130;
D:字符參與運算
是查找ASCII里面的值
'a' 97
'A' 65
'0' 48
空格 32
System.out.println('a');
System.out.println('a' + 1);
E:字符串參與運算
這里其實是字符串的連接
System.out.println("hello"+'a'+1);
System.out.println('a'+1+"hello");
System.out.println("5+5="+5+5);
System.out.println(5+5+"=5+5");
運行結(jié)果:helloa1
98hello
5+5=55
10=5+5
三黍聂、轉(zhuǎn)義字符
\’:代表一個單引號
\\:代表一個反斜線字符”\”
\”:代表一個雙引號字符
\b:退格 躺苦,是將光標(biāo)移動到當(dāng)前字符的前一個字符,并不會刪除當(dāng)前字符产还。
注意:eclipse當(dāng)中不識別匹厘,需要在DOS環(huán)境下運行
\n:換行,將當(dāng)前位置移到下一行的開頭
\r:回車脐区,將當(dāng)前位置移到本行的本行開頭
注意:\n愈诚、\r在eclipse沒有區(qū)別,需要在DOS環(huán)境下運行
\t:水平制表位:跳到下一個Tab位置