數據類型:
1.數據類型一般有兩種,基礎數據類型和引用類型。
2.類型之間的轉換爲:char、short、byte->int->long->float->double,注意大字節類型轉小字節類型時:float a = 2.5F;3.short、char、byte之間不會相互轉換,再進行運算時,這三個類型會優先轉換爲int類型。
涉及代碼:
public class Test{
<span style="white-space:pre"> </span>public static void main(String[] args){
<span style="white-space:pre"> </span>// float a = 2.5; 會報錯,精度損失
<span style="white-space:pre"> </span>float a = 2.5F; //編譯通過
<span style="white-space:pre"> </span>System.out.println(a);
}
}
編碼問題:
1.JAVA默認編碼爲Unicode;
2.Unicode編碼也說明了java能識別中文標識符,但是注意:關鍵詞不能用中文!
涉及代碼:
class 人{
<span style="white-space:pre"> </span>private String 名字;
private String 性別;
} //編譯通過
表達式:
1.整除(/):左右兩邊必須爲整型。
涉及代碼:
public class Test{
public static void main(String[] args){
int a;
a = 5/2; //編譯通過,結果爲2(爲什麼不是2.5,請自行百度JAVA進制轉換導致的損失精度)
a = 5.0/2; //編譯錯誤,解決辦法爲: a = (int)5.0/2;
}
}
2.取模(%):取餘數。
3.自加減(查看後面代碼):前++(--)爲先自加減後才參與運算,後++(--)爲先參加運算後自加減,注意:無論是前++還是後++,在這條語句結束後,該變量的值一定改變了。
涉及代碼:public class Test{
<span style="white-space:pre"> </span>public static void main(String[] args){
<span style="white-space:pre"> </span>int a=3,s;
s = (a++)+1; <span style="white-space:pre"> </span>//等於4 根據之前的敘述,++在後面,a變量就先參與運算再自增減,也就是 a(3)+1=4,然後a++=4;
System.out.println(s);
<span style="white-space:pre"> </span>System.out.println(a); //a爲4
a=3;
<span style="white-space:pre"> </span>s = (++a)+1; //等於5 根據之前的敘述,++在前面,a變量就先自增減再參與運算,也就是 ++a=4,然後a(4)+1=5;
System.out.println(s);
<span style="white-space:pre"> </span>System.out.println(a); //a爲4
}
}
4.恆等(===):不僅要求兩個變量的值相等,而且類型也要相同。
涉及代碼:public class Test{
public static void main(String[] args){
<span style="white-space:pre"> </span>int a = 1;
float b = 1.0F;
if(a == b){
System.out.println("a = b,編譯通過"); //判斷爲真
}
if(a === b){ //編譯不通過。
<span style="white-space:pre"> </span>System.out.println("a = b,編譯通過");
}
}
5.短路與(&&)/或(||):提高程序運行效率。
1.短路與在首個表達式爲假的情況下觸發短路機制,該判斷停止進行,自動斷定爲假。2.短路或在首個表達式爲真的情況下觸發短路機制,該判斷停止進行,自動斷定爲真。
涉及代碼(只展示短路與和與的不同):
<pre name="code" class="java">public class Test{
public static void main(String[] args){
int a = 1,b = 0,c = 0;
if(a == 0 & (b = 3) == 0){
//空
}
System.out.println(b); //此時b=3,因爲與即使在確定了前面一個表達式爲假即使可以得出結果了,程序依然會再去判斷第二個表達式
if(a == 0 && (c = 3) == 0){
//空
}
System.out.println(c); //此時c=0,因爲短路與在判斷第一個表達式爲假後就已經確定了整個if判斷爲假。
}
}