Java中的數(shù)據(jù)類型
作者:CHAITANYA SINGH
來源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=15
數(shù)據(jù)類型用來定義變量可以采用的值戚扳,例如,如果變量具有int數(shù)據(jù)類型最域,則它只能接受整數(shù)值。在java中止吐,我們有兩類數(shù)據(jù)類型:1)原始數(shù)據(jù)類型 2)非原始數(shù)據(jù)類型 - 數(shù)組和String是非原始數(shù)據(jù)類型罩句,我們將在后面的教程中討論它們。這里我們主要討論Java中的原始數(shù)據(jù)類型(primitive data types)和字面量(literals)病线。
Java是一種靜態(tài)類型化語言吓著,意思就是程序在編譯時必須知道變量的數(shù)據(jù)類型鲤嫡,這意味著在寫代碼的時候,您必須首先指定變量的類型(聲明變量)绑莺,然后才能使用這個變量暖眼。
在上一篇關(guān)于“Java變量”的教程中,我們學(xué)習(xí)了如何聲明變量纺裁,讓我們回憶一下:
int num;
所以诫肠,為了在我們的程序中使用變量num司澎,我們必須首先聲明它,如上面所示栋豫。在程序開始時首先聲明所有變量(您將要使用的變量)是一個很好的編程習(xí)慣挤安。
1)原始數(shù)據(jù)類型(Primitive data types)
在Java中,我們有八種原始數(shù)據(jù)類型:布爾類型(boolean)丧鸯、字符類型(char)蛤铜、字節(jié)類型(byte)、短整類型(short)丛肢、整數(shù)類型(int)围肥、長整數(shù)類型(long)、單精度浮點型(float)蜂怎、雙精度浮點型(double)穆刻。在不同的操作系統(tǒng)中,這些原始數(shù)據(jù)類型的大小都是一樣的杠步,所以一旦Java開發(fā)人員在程序代碼中選用了這些數(shù)據(jù)類型氢伟,這個程序就可以在不同的操作系統(tǒng)下面運行而不用擔(dān)心數(shù)據(jù)類型的不符,這就是所謂的Java程序的可移植性幽歼。
字節(jié)型(byte)腐芍、短整型(short)、整型(int)试躏、長整型(long)這四種數(shù)據(jù)類型用來存儲整數(shù)猪勇。
浮點類型(float、double)用來存儲包含小數(shù)的數(shù)據(jù)類型颠蕴。浮點類型分為float(單精度型)和double(雙精度類型)這兩種泣刹。float(單精度型)一般在精度要求不高的時候使用。double(雙精度類型)一般在數(shù)值精度高的時候使用犀被。
字符類型(char)用來存儲字符椅您,比如說各種字母、特殊符號寡键、等等掀泳。注意字母除了26個英文字母外,也可以是數(shù)字字母西轩,如‘1’员舵、‘2’、‘3’藕畔,等等马僻。字符類型的值一般都放在單引號'或雙引號"里面,如'a'注服,"a"韭邓,等等措近。
布爾類型(boolean)用來存儲存儲布爾變量的值。布爾變量的值只能在下面兩個值中取其中的一個:true女淑,false瞭郑。true表示“是”或“真”,false表示“否”或“假”鸭你,所以對于布爾變量的值只有兩個可能:“true”凰浮,或者“false”。
字節(jié)型(byte):
用來存儲從-128到127之間的整數(shù)苇本。如果我們知道變量的大小范圍在這個范圍之內(nèi)袜茧,我們就把變量的數(shù)據(jù)類型定義為字節(jié)型(byte),這樣可以節(jié)省在計算機(jī)內(nèi)存中存儲這個變量的值需要分配的空間瓣窄。
需要內(nèi)存空間大械严谩:1字節(jié)(byte)
例子:
class JavaExample?{
????public static void main(String[]?args)?{
????????byte num;
????????num?=?113;
????????System.out.println(num);
????}
}
輸出:113
建議:通過將150個值賦值給變量num來嘗試相同的程序,您將得到類型失配錯誤俺夕,因為值150超出了字節(jié)數(shù)據(jù)類型的范圍裳凸。正如我前面提到的,字節(jié)的范圍是-128到127劝贸。
短整型(short):
用來存儲從-32,768到32767之間的整數(shù)姨谷。
需要內(nèi)存空間大小:2字節(jié)(byte)
short num?=?45678;
整數(shù)類型(int)
用來存儲從-2,147,483,648到2,147,483,647之間的整數(shù)映九。
需要內(nèi)存空間大忻蜗妗:4字節(jié)(byte)
例子:
class JavaExample?{
????public static void main(String[]?args)?{
????????short num;
????????num?=?150;
????????System.out.println(num);
????}
}
輸出:150
字節(jié)數(shù)據(jù)類型不能容納整數(shù)值150,但短數(shù)據(jù)類型可以容納件甥,因為它的范圍更廣捌议,可以容納從-32,768到32767之間的整數(shù)。
長整型(long):
如果一個整數(shù)值的大小超過了整數(shù)類型(int)可以容納的范圍后引有,我們需要用長整型(long)的變量來存儲這個超大整數(shù)值瓣颅。長整型(long)可以用來容納范圍從-9,223,372,036,854,775,808到9,223,372,036,854,775,807的整數(shù)值。
需要內(nèi)存空間大衅┱:8字節(jié)(byte)
例子:
class JavaExample?{
????public static void main(String[]?args)?{
????????long num?=?-12332252626L;
????????System.out.println(num);
????}
}
輸出:-12332252626
雙精度浮點類型(double):
可以存儲包含高達(dá)15位小數(shù)的數(shù)值宫补。
需要內(nèi)存空間:8字節(jié)(byte)
例子:
class JavaExample?{
????public static void main(String[]?args)?{
????????double num?=?-42937737.9d;
????????System.out.println(num);
????}
}
輸出:-4.29377379E7
單精度浮點類型(float):
可以容納6至7位小數(shù)位數(shù)
需要內(nèi)存空間:4字節(jié)(byte)
例子:
class JavaExample?{
????public static void main(String[]?args)?{
????????float num?=?19.98f;
????????System.out.println(num);
????}
}
輸出:19.98
布爾型(boolean):
布爾型數(shù)據(jù)值只能是true或false。true表示“真”曾我,false表示“假”粉怕。
例子:
class JavaExample?{
????public static void main(String[]?args)?{
????????boolean b?=?false;
????????System.out.println(b);
????}
}
輸出:false
字符類型(char):
存儲字符,如各種字母您单、符合斋荞、數(shù)字符荞雏,等等
需要內(nèi)存空間:2字節(jié)(byte)
例子:
class JavaExample?{
????public static void main(String[]?args)?{
????????char ch?=?'Z';
????????System.out.println(ch);
????}
}
輸出:Z
Java的字面值(Literals in Java)
Java代碼中的字面值(Literal)的意思就是按照字面上的意思去理解的數(shù)值虐秦。字面值(Literal)代表了一個固定的值平酿,我們可以通過操作符=把字面值分配給程序中的一個變量。
int num=10;
這里的值10是一個整數(shù)字面值悦陋。
char ch?=?'A';
這里A是一個字符字面值蜈彼。
整數(shù)字面值(Integer Literal)
整數(shù)字面值可以賦值給以下的數(shù)據(jù)類型的變量:byte,、short,俺驶、int幸逆、long.
byte b?=?100;
short s?=?200;
int num?=?13313131;
long l?=?928389283L;
浮點字面值(Float Literals)
浮點字面值可以賦值給以下的數(shù)據(jù)類型的變量:float和double。
double num1?=?22.4;
float num2?=?22.4f;
注意:對于單精度浮點字面值暮现,我們一定要記得加上“f”后綴还绘,如果沒有這個后綴,編譯器在編譯的時候會把它當(dāng)做雙精度浮點值來處理栖袋。
字符和字符串字面值(Char and String Literal)
字符和字符串字面值用于賦值給字符和字符串類型的變量拍顷。
char ch?=?'Z';
String?str?=?"This?is?Beginner's?Book?這是初學(xué)者的教程";