基本資料型別 變數和運算子號
2.1Java資料型別
1. 基本資料型別(8個)
佔用空間
byte 1位元組=8bit 2^8
short 2位元組=16bit 2^16
int 4位元組=32bit 2^32
long 整數型別 8位元組
-----------------------------------------
float 浮點型 4位元組
double 8位元組
------------------------------------------
boolean 布林型別 1位元組
--------------------------------------------
char 字元型別(底層還是整數型 2位元組
1 public class Test2 2 { 3 public static void main(String[] args){ 4 byte bytevalue = 1; 5 short shortvalue = 2; 6 int intvalue = 3; 7 long longvalue = 4; 8 9 float floatvalue = 3.3f;//float型別後面必須要加f或F,否則會被預設為double型別 10 double doublevalue = 4.4; 11 boolean booleanvalue = true;//布林型別中的值只能為TRUE或者false 12 char charvalue ='a'; 13 /* 14 注意一個問題,編寫程式時,後多時候需要用到符號,例如:圓括號,大括號,分號,逗號,點號, 15 Java中涉及到以上的符號全部需要英文的符號,一旦使用中文符號,就會出問題。 16 */ 17 System.out.println("bytevalue="+bytevalue); 18 System.out.println("shortvalue="+shortvalue); 19 System.out.println("intvalue="+intvalue); 20 System.out.println("longvalue="+longvalue); 21 System.out.println("floatvalue="+floatvalue); 22 System.out.println("doublevalue="+doublevalue); 23 System.out.println("booleanvalue="+booleanvalue); 24 System.out.println("charvalue="+charvalue); 25 26 27 } 28 }
基本資料型別 包裝型別(物件型別)
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
2.物件型別(引用型別,自定義型別)
2.2變數
定義變數
語法:
資料型別 變數名稱;
資料型別 變數名稱 = 初始值; (推薦做法)
小結:
1.變數的定義語法
有推薦的做法,還有不推薦的做法。(不推薦的原因)
2.變數的變這個字的解釋。量,就是具體的值。
3.變數的名稱(標示符identifier)定義規則
不能數字開頭,中間可以穿插數字
通常有含義。最好不要這樣:a1,a2,a3,a4
zhangsanAge,lisiAge
駝峰模型:第一個單詞首字母小寫外,後續單詞首字母大寫。
4. System.out.println
System.out.print
ln就是多了一個換行
5.字串與任何資料的+操作,不是數學意義的加,而是字串拼接的意思。
1 public class Test1 2 { 3 public static void main(String[] args){ 4 short salary; //宣告一個short型別的變數名稱salary 5 short salary2 = 3000;//宣告一個short型別的變數名稱salary2,並且賦初始值是3000 6 7 salary = 3001;//變數重新賦值, 8 salary2 = 3003;//對salary2變數進行賦值,賦的值是3003 9 System.out.println("重新賦值的salary2是 "+salary2); 10 }
}
2.3運算子號
一些運算的規則:
1.小於int型別的型別(byte,short,char),他們之間操作(同類,不同類),結果【自動提升】int
2.相同型別相互操作,結果就是這個型別。
int+int=int
long+long=long
float+float=float
double+double=double
3.不同型別相互操作,結果以大型別為準。
int+long=long
int+byte=int
4.float和long相互間操作結果式float(縱然long是8個位元組,float式4個位元組)
float = long+float
public class Test3 { public static void main(String[] args) { int num1 = 10; int num2 =3; //+,-,*,/,% int num3 = num1 + num2; int num4 = num1 - num2; int num5 = num1 * num2; int num6 = num1 / num2; int num7 = num1 % num2; System.out.println(num1+"+"+num2+"="+num3); System.out.println(num1+"-"+num2+"="+num4); System.out.println(num1+"*"+num2+"="+num5); System.out.println(num1+"/"+num2+"="+num6); System.out.println(num1+"%"+num2+"="+num7); //() 改變優先順序 int num8 =10,num9=20,num10=5; int num11,num12; num11 = num8 + num9*num10; num12 = (num8 + num9)*num10; System.out.println("num11="+num11); System.out.println("num12="+num12); //1) 小於int型別的型別鍵操作 byte b1 = 1; byte b2 = 2; //byte b3 = b1+b2; /* Test3.java:56: 錯誤: 不相容的型別: 從int轉換到byte可能會有損失 */ byte b3 = (byte) (b1+b2); int b4 = b1+b2; System.out.println(b3); System.out.println(b4); //小於int型別的型別(byte,short,char), //他們之間操作(同類,不同類),結果【自動提升】int
//2) 同類型相互操作,結果就是這個型別 float f1 = 3.3f; float f2 = 7.3f; float f3 = f1 + f2; double d1=1,d2=2;//double d1=1;double d2=2; double d3=3,d4;//double d3=3;double d4; d4 = d1+d2; System.out.println(f3); System.out.println(d4); //3) 不同型別相互間操作,結果以大型別為準 long l1 =50; byte bx =3; //byte gg = l1 + bx; /* Test3.java:97: 錯誤: 不相容的型別: 從long轉換到byte可能會有損失 byte gg = g1+bx;//long v =long+byte */ byte gg = (byte)(l1+bx); long gl = l1+bx; //4) float和long相互間操作,結果式float, //因為float可以儲存浮點數 float ff = 3.3f; long gk = 100; //gk = gk+ff;//float = long+float float ft = ff + gk; System.out.println(gl); System.out.println(ft); } }
char型別其實就是數字型別,char值背後都是以數字的形式儲存的
不同型別之間(指數值型別7個),賦值,小的型別值賦值給大的型別變數是可以的,反之需要進行強制型別轉換
public class Test4 { public static void main(String[] ars){ char ch = 'a'; int num = ch;//隱式轉換(自動) System.out.println(ch+" 這個字元對應的數值:"+num); ch = 'A'; num = ch; System.out.println(ch+" 這個字元對應的數值:"+num); ch = '中'; num = ch; System.out.println(ch+" 這個字元對應的數值:"+num); num = 99; ch = (char)num;//錯誤的,必須進行強制型別轉換 System.out.println(num+" 這個數字對應的字元:"+ch); //既然char值背後是數字,那麼就能進行運算 ch = 'b'; num = ch+1; System.out.println(num); //不同型別的變數(值),賦值給其他型別的變數,會出現精度丟失問題 //那麼浮點數賦值給整數型別會怎樣(肯定式需要強制型別轉換) //浮點數強制轉換成整形數,就是小數部分直接擷取。 float f = 3.3f; num = (int)f; System.out.println(num); num= 100; f = num;//隱式轉換 System.out.println(f); } }