Java的基本資料類型可分為三大類(另加一個String類型)
1.整數
a. byte
範圍:-128 (-2^7) ~ 127(2^7 -1) [8-bit]
b. short
範圍:-32,768 (-2^15) ~ 32,767(2^15 -1) [16-bit]
c. int
範圍:-2,147,483,648(-2^31) ~ 2,147,483,647(2^31 -1) [32-bit]
d. long
範圍:-9,223,372,036,854,775,808(-2^63) ~ 9,223,372,036,854,775,807(2^63 -1) [64-bit]
2.浮點數
a. float (單精度)
必須以f結尾:float fnumber = 123.45f;
b. double (雙精度)
結尾d可省略:double dnumber = 123.45;
1.範圍:true 跟 false
2.預設是:false
3.boolean isred = true;
1.範圍:'\u0000' (即:0) ~ '\uffff' (即:65,535)
2.char anyletter ='d';
之所以將字元與字串分開,是因為字串並不是基本類型。它是String類別的實例,因此其實不該放在這裡。但由於它太常見,跟字元關係密切,甚至給人的感覺也很”基本”,所以也放在這裡好了。
1.字元是單引號,字串則是用雙引號:String name = "Zack";
2.要在字串中包含雙引號可用反斜線"\":Srting title = "\"best\" coder";
3.既然String是類別的實例,它便可使用類別裡提供的方法,參考以下例子:
import static java.lang.System.out;
public class Main {
public static void main(String[] args) {
String name = "zack";
out.println(name.length()); // 4
out.println(name.contains("ack")); // true
out.println(name.charAt(2)); // a
out.println(name.substring(1, 3)); // ac
out.println(name + name); // zackzack
char[] characters = name.toCharArray();
for(char ch : characters) {
out.printf("%c ", ch); // z a c k
}
}
}
其中characters是字元array,每一個內部元素都是各自獨立的,所以可以用:for(char ch : characters)。但String就不能進行這樣的操作。
[image credit: Florian Klauer]