一、Java關鍵字
Java關鍵字都是小寫的,一共48個。如下圖所示:
注意,與C或者C++不同,Java沒有將const和goto作爲關鍵字。目前這兩個是保留關鍵字,可能在未來會被Java採用,有可能永遠不用。Java還提供了3個特殊的直接量:true、false和null。故Java語言的標識符(即給程序中變量、類、方法命名的符號)不能是這個單詞。
二、基本類型
Java有8個基本類型,其名稱和佔用內存如下圖所示:
除基本類型外,Java還有引用類型。實際上引用類型變量就是一個指針,只是Java語言中不再使用指針這個說法。引用類型包括類、接口和數組類型,還有一種特殊的null類型。值得指出的是,字符串不是基本數據類型,字符串是一個類,也就是一個引用數據類型。
1、整型
整型包含四種類型:byte,short,int和long。與C/C++相比多了byte,byte一共8位,表示的數據範圍爲。以下幾點需要注意
- 一個很大的數賦值給long型變量時,數的後面需要加上大寫的字母
L
。例如long val = 9000000000000000L;
- 不能將超過當前數據類型範圍的數賦值,比如
byte val = 1000;
就是錯誤的賦值 - 整數常量有3中表示方式:十進制、8進制和16進制。與C/C++相同,10進制前啥也不加,8進制前加0,16進制前加0x。例如
int val = 010;
中val=8
,int val = 0x10;
中val=16
2、字符型
首先Java包含C/C++的128個ASCII碼,使用方法與C/C++完全相同。更厲害之處在於,在Java中字符型常量也可以採用16進制編碼方式來表示,範圍是\u0000~\uFFFF
,一共可以表示65535個字符。
漢字用16進制編碼的範圍爲0x4E00~0x9FA5
,一共20902個漢字。下面程序輸出前100個漢字:
public class basicData {
public static void main(String[] args)
{
for(int i = 0x4E00; i < 0x4E00+100; i++)
{
// 與C/C++不同之處在於Java一定要顯示的實現數據類型的強行轉換
char c = (char)i;
System.out.print(c);
}
}
}
3、浮點型
Java浮點型跟C/C++一樣,需注意float精度範圍,且float需要在數字後加字母f
顯示聲明。不同之處在於Java提供了正負無窮大和非數NaN。可參考程序:
public class basicData {
public static void main(String[] args)
{
// 輸出的f1值發生改變,精度不夠,用double便可以保存精度
float f1 = 5.2345556f;
double f2 = 5.2345556;
System.out.println(f1);
System.out.println(f2);
// Java有正負無窮大和非數NaN
double t1 = Double.POSITIVE_INFINITY;
double t2 = Double.NEGATIVE_INFINITY;
double t3 = 0.0 / 0.0;
System.out.println(t1);
System.out.println(t2);
System.out.println(t3);
}
}
4、bool型
Java中布爾型用boolean
表示,其值只能是true
或者false
。
5、類型轉換
Java類型轉換跟C/C++很像,不同之處在於Java提供了字符串與數字之間的轉換。例如,字符串s
可以通過Integer.parseInt(s)
返回其對應的整數;數字也可以後面直接加上空字符串的形式變爲字符串,還可以將數字和字符串進行拼接,如下:
public static void main(String[] args)
{
String s = "123456";
int val = Integer.parseInt(s); // 將字符串解析爲整數
System.out.println(val);
String str1 = 5 + ""; // 將5轉化爲字符串"5"
System.out.println(str1);
String str2 = "Hello " + 7 + 513; // 將字符串和數字進行拼接,"Hello 7513"
System.out.println(str2);
String str3 = 7 + 513 + " Hello"; // 先算7+513,再進行拼接,"520Hello"
System.out.println(str3);
}