你們好,小樂又來了,上一篇:樂字節Java變量與數據類型之二:Java常量與變量,java
今天接着講Java變量與數據類型之三:數據類型與轉義字符。面試
Java是一種強類型語言,針對每種數據都提供了對應的數據類型。
數組
Java數據類型eclipse
A:基本數據類型:4類8種優化
B:引用數據類型:類,接口,數組。spa
①整型 佔用字節數 比特/位 取值範圍接口
byte(字節型) 1 8位 [-128 , 127]圖片
short(短整型) 2 16位 [-32768,32767]ip
int (整型 ) 4 32位 [-21億, 21億]字符串
long(長整型) 8 64位 很大很大
注意:整數數值默認爲int類型,若是須要定義一個long類型的變量,當超出int的範圍時,須要在該值後加 l或者L
②浮點型
float(單精度) 4
double(雙精度) 8
float有效位是7位,double有效位是14位
注意:浮點數默認爲double類型,若是須要定義一個float類型的變量,則數值後須要加 f或者F
③字符型(0~65535)
char(字符型) 2 一個字符能存儲一箇中文漢字
要求:用 ' '將字符括起來
④邏輯型(布爾型)
boolean(布爾類型) 1位
整數默認是int類型,浮點數默認是double。
長整數要加L或者l,單精度的浮點數要加F或者f。
boolean類型不參與轉換
A:從小到大
B:byte,short,char --> int long float double
C:byte,short,char之間是平級的,不相互轉換,直接轉成int類型參與運算。
A:從大到小
B:可能會有精度的損失,通常不建議這樣使用。
C:格式:
目標數據類型 變量名 = (目標數據類型) (被轉換的數據);
A:下面兩種方式有區別嗎?
float f1 = 12.345f;
float f2 = (float)12.345;向下類型轉換,浮點數默認是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在運算時,會自動向上轉型爲int型,因此返回的結果是int類型,而接收的類型均不是int,因爲類型不匹配,因此報錯
byte b4 = 3 + 4;
short s=3+4;
常量進行計算後的值,預編譯時可以判斷其是否超出範圍
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進行了優化。
C:下面的操做結果是什麼呢?
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");
運行結果:helloa1
98hello
5+5=55
10=5+5
’:表明一個單引號
\:表明一個反斜線字符」」
」:表明一個雙引號字符
b:退格 ,是將光標移動到當前字符的前一個字符,並不會刪除當前字符。
注意:eclipse當中不識別,須要在DOS環境下運行
n:換行,將當前位置移到下一行的開頭
r:回車,將當前位置移到本行的本行開頭
注意:n、r在eclipse沒有區別,須要在DOS環境下運行
t:水平製表位:跳到下一個Tab位置