一.常量
Java中的數(shù)據(jù)量分為常量和變量,常量就是不變的數(shù)據(jù)量,例如100就是常量,任何數(shù)據(jù)量都有其類型,那么100這個常量是什么類型呢?回憶一下基本類型中有四類,分別是整數(shù)、小數(shù)(浮點數(shù))、字符、布爾。那么100是哪一類型呢?沒錯,就是整數(shù)常量!?。?/p>
整數(shù)類型:
十進制表示方式:正常數(shù)字如13、25等;
二進制表示方式:以0b(0B)開頭如0b1011、0B1001;
十六進制表示方式:以0x(0X)開頭數(shù)字以0-9及A-F組成如0x23A2、0xa、0x10;
八進制表示方式:以0開頭如01、07、0721;
小數(shù)類型:
如1.0、-3.15、3.168等;
布爾類型
true、false;
字符類型
如'a','A', '0', '家';
字符必須使用’’包裹,并且其中只能且僅能包含一個字符;
字符串類型
字符串String類型是一種引用類型,我們先了解作為常量類型的使用方式
如“我愛Java”,“0123”,“”,“null”
字符串必須使用“”包裹,其中可以包含0~N個字符。
回顧HelloWorld案例,其中System.out.println(“HelloWorld!”)的圓括號中放的就是一個字符串。當然我們可以把圓括號中的字符串換成其他字符串!不只是可以換成其他字符串,還可以把圓括號中的字符串換成其他類型的常量,例如:
通過編寫代碼來實際感受一下:Const.java
/*
*常量的演示
*/
publicclassConst {
publicstaticvoidmain(String[] args) {
//整數(shù)類型
//10進制
System.out.println(100);
System.out.println(12345);
System.out.println( 10 );
//2進制
System.out.println( 0b1010 );
//8進制
System.out.println( 012 );
//16進制
System.out.println(0xA);
//小數(shù)類型
System.out.println(3.15);
//字符類型
System.out.println('a');
System.out.println('A');
System.out.println('0');
System.out.println('家');
//布爾類型
System.out.println(true);
System.out.println(false);
//字符串類型
System.out.println("我愛Java");
System.out.println("0123");
}
二.數(shù)據(jù)類型
數(shù)據(jù)類型包括基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。
基本數(shù)據(jù)類型是Java語言中內(nèi)置的類型,分別是整數(shù)類型、小數(shù)類型、字符類型、布爾類型。這四類基本類型是最簡單、最基礎的類型。
引用數(shù)據(jù)類型是強大的數(shù)據(jù)類型,它是基于基本數(shù)據(jù)類型創(chuàng)建的。JavaSE中提供了一個超級類庫,類庫中包含了近萬種引用數(shù)據(jù)類型。
Java中基本類型一共4類,把這4類展開后共8種基本類型。我們今后編寫程序時使用的是這8種基本類型而不是4類,這8種基本類型指定了范圍。
三.常量與類型
前面我們說過100是整數(shù)常量,但它是byte、short、int、long中的哪一種呢?下面我們來聊聊這一常量類型的問題。整數(shù)常量可以根據(jù)所在范圍來確定類型,例如100在-128~127之間,所以他是byte類型;500在-32768~32767之間,所以它是short類型;100000在-2147483648~2147483648之間,所以它是int類型。java中默認的整數(shù)類型是int類型。
你可能會認為12345678901在-263~263-1之間,所以它是long類型。注意了,這是錯誤的?。?!在Java中整數(shù)常量如果不在-2147483648~2147483648之間就必須添加“L”后綴(小寫的也可以,但建議使用大寫),在-2147483648~2147483648之間的也可以添加“L”后綴。也就是說12345678901不在-2147483648~2147483648之間,所以它在Java中是錯誤的常量,你必須這樣寫:12345678901L,這才是正確的常量。所以添加了“L”后綴的整數(shù)常量都是long類型的,例如:100L、12345678901L都是long類型的常量。浮點類型的常量也可使用后綴,在Java中所有沒有后綴以及使用“D”后綴(小寫也可以,但建議使用大寫)的小數(shù)都是double類型;float類型常量必須添加“F”后綴(小寫也可以,但建議使用大寫)java中默認的浮點類型是double類型。
3.14沒有后綴,所以它是double類型;
5.28D為double類型;
1.26F為float類型;
四.定義變量
定義語法的變量格式:
數(shù)據(jù)類型 ? ?變量名 ?= ?數(shù)據(jù)值;
int ? ? ? ? ? ? ? ? ? a ? ? ? = ? ?100;
其中 int 是數(shù)據(jù)類型,指定了變量只能存儲整數(shù),而且指定了存儲范圍為-2147483648~2147483648。
其中a表示變量名,變量名是標識符,這說明只要是合法的標識符都可以用來做變量名。在程序中可以通過變量名來操作變量(內(nèi)存中的小盒子)。
其中“=100”是給變量賦值,即向a變量中寫入100(變量是個小盒子,現(xiàn)在小盒子中保存的是100)。注意,給變量賦的值一定要與類型符合,也就是說int類型只能存儲整數(shù),而且必須是在-2147483648~2147483648范圍內(nèi)的整數(shù)。
練習:
Variabe.java
/*
變量定義格式:
數(shù)據(jù)類型? 變量名? =? 變量值;
*/
publicclassVariable {
publicstaticvoidmain(String[] args) {
inta = 10;
doubleb = 3.14;
charc ='z';
String s ="ilove java";
a = 20;
System.out.println(a);
}
}
變量使用的注意事項;
——作用域
變量定義在哪一級大括號中,哪個大括號的范圍就是這個變量的作用域。相同的作用域中不能定義兩個同名變量。
public static void main(String[] args) {
int x = 20;
{
int y = 20;
}
System.out.println(x);//讀取x變量中的值,再打印
System.out.println(y);//讀取y變量中的值失敗,失敗原因,找不到y(tǒng)變量,因為超出了y變量作用范圍,所以不能使用y變量
}
——初始化值
沒有初始化值不能直接使用(即不賦值不能使用)
public static void main(String[] args) {
int x;
x = 20; //為x賦值20
System.out.println(x);//讀取x變量中的值,再打印
}
——變量不可以重復定義。
public static void main(String[] args){
int x =10;
doublex = 5.5;//編譯失敗,變量重復定義
}
五.數(shù)據(jù)類型轉(zhuǎn)換
——默認轉(zhuǎn)換
byte,short,char—int—long—float—double
byte,short,char相互之間不轉(zhuǎn)換,他們參與運算首先轉(zhuǎn)換為int類型
——強制轉(zhuǎn)換
目標類型 變量名=(目標類型)(被轉(zhuǎn)換的數(shù)據(jù));
1.默認類型轉(zhuǎn)換
表示范圍小的數(shù)據(jù)類型轉(zhuǎn)換成范圍大的數(shù)據(jù)類型,這種方式稱為自動類型轉(zhuǎn)換
自動類型轉(zhuǎn)換格式:
范圍大的數(shù)據(jù)類型 變量 =范圍小的數(shù)據(jù)類型值;
如:
double d = 1000;
或
int i = 100;
double d2 = i;
2.強制類型轉(zhuǎn)換
表示范圍大的數(shù)據(jù)類型轉(zhuǎn)換成范圍小的數(shù)據(jù)類型,這種方式稱為強制類型轉(zhuǎn)換
強制類型轉(zhuǎn)換格式:
范圍小的數(shù)據(jù)類型變量= (范圍小的數(shù)據(jù)類型)范圍大的數(shù)據(jù)類型值;
如:
int? i = (int)6.718;?? //i的值為6
或
double? d = 3.14;
int? i2 = (int)d;???? //i2的值為3