java语言中的数据类型_Java语言中关于数据类型的一些总结
一、Java語(yǔ)言中有兩種數(shù)據(jù)類(lèi)型
基本數(shù)據(jù)類(lèi)型:即int/char等這樣的數(shù)值類(lèi)型,共8種
1、byte
byte 數(shù)據(jù)類(lèi)型是8位、有符號(hào)的,以二進(jìn)制補(bǔ)碼表示的整數(shù)
范圍是-27--(27-1);
byte 類(lèi)型用在大型數(shù)組中節(jié)約空間,主要代替整數(shù),因?yàn)?byte 變量占用的空間只有 int 類(lèi)型的四分之一;
例子:byte a = 100,byte b = -50。
2、short
short 數(shù)據(jù)類(lèi)型是 16 位、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù);
范圍是-215——(215-1);
Short 數(shù)據(jù)類(lèi)型也可以像 byte 那樣節(jié)省空間。一個(gè)short變量是int型變量所占空間的二分之一;
例子:short s = 1000,short r = -20000
3、int
int 數(shù)據(jù)類(lèi)型是32位、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù);
范圍是-231——(231-1);
一般地整型變量默認(rèn)為 int 類(lèi)型;
例子:int a = 100000, int b = -200000
4、long
long 數(shù)據(jù)類(lèi)型是 64 位、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù);
范圍是-263——(263-1);
這種類(lèi)型主要使用在需要比較大整數(shù)的系統(tǒng)上;
默認(rèn)值是?0L;
例子: long a = 100000L,Long b = -200000L。
"L"理論上不分大小寫(xiě),但是若寫(xiě)成"l"容易與數(shù)字"1"混淆,不容易分辯。所以最好大寫(xiě)。
5、float
float 數(shù)據(jù)類(lèi)型是單精度、32位、符合IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù);
float 在儲(chǔ)存大型浮點(diǎn)數(shù)組的時(shí)候可節(jié)省內(nèi)存空間;
默認(rèn)值是?0.0f;
浮點(diǎn)數(shù)不能用來(lái)表示精確的值,如貨幣;
例子:float f1 = 23.7f.
6、double
double 數(shù)據(jù)類(lèi)型是雙精度、64 位、符合IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù);
浮點(diǎn)數(shù)的默認(rèn)類(lèi)型為double類(lèi)型;
double類(lèi)型同樣不能表示精確的值,如貨幣;
默認(rèn)值是?0.0d;
例子:double d1 = 3.4。
7、boolean
boolean數(shù)據(jù)類(lèi)型表示判斷型數(shù)據(jù)類(lèi)型;
只有兩個(gè)取值:true 和 false,這種類(lèi)型只作為一種標(biāo)志來(lái)記錄 true/false 情況;
默認(rèn)值是?false;
例子:boolean one = true。
8、char
char類(lèi)型是一個(gè)單一的 16 位字符;
范圍是\u0000(即為0)——\uffff(即為65535);
char 數(shù)據(jù)類(lèi)型可以儲(chǔ)存任何字符;
例子:char letter = 'A';。.
二、引用數(shù)據(jù)類(lèi)型
除了基本數(shù)據(jù)類(lèi)型之外都是引用類(lèi)型
對(duì)象、數(shù)組都是引用數(shù)據(jù)類(lèi)型;如數(shù)組int[],String[],
所有引用類(lèi)型的默認(rèn)值都是null;
一個(gè)引用變量可以用來(lái)引用與任何與之兼容的類(lèi)型。
三、數(shù)據(jù)類(lèi)型轉(zhuǎn)換
程序中經(jīng)常會(huì)遇到要將數(shù)據(jù)類(lèi)型進(jìn)行轉(zhuǎn)換的情況(如:在一個(gè)表達(dá)式中存在不同類(lèi)型的操作數(shù)時(shí)),Java的數(shù)據(jù)類(lèi)型轉(zhuǎn)換比C控制得更為嚴(yán)格;
數(shù)據(jù)類(lèi)型轉(zhuǎn)換有兩種情況:自動(dòng)類(lèi)型轉(zhuǎn)換,強(qiáng)制類(lèi)型轉(zhuǎn)換。
1、自動(dòng)類(lèi)型轉(zhuǎn)換
數(shù)據(jù)類(lèi)型轉(zhuǎn)換必須滿足如下規(guī)則:
1) 不能對(duì)boolean類(lèi)型進(jìn)行類(lèi)型轉(zhuǎn)換。
2) 不能把對(duì)象類(lèi)型轉(zhuǎn)換成不相關(guān)類(lèi)的對(duì)象。
3)在把容量大的類(lèi)型轉(zhuǎn)換為容量小的類(lèi)型時(shí)必須使用強(qiáng)制類(lèi)型轉(zhuǎn)換。
4)轉(zhuǎn)換過(guò)程中可能導(dǎo)致溢出或損失精度,
例如:
inti =128;
byteb =(byte)i;
因?yàn)閎yte類(lèi)型時(shí)為8位,最大值為127,所以當(dāng)強(qiáng)制轉(zhuǎn)換為int類(lèi)型值128時(shí)候就會(huì)導(dǎo)致溢出。
5) 浮點(diǎn)數(shù)到整數(shù)的轉(zhuǎn)換是通過(guò)舍棄小數(shù)得到,而不是四舍五入,例如:
(int)23.7 == 23;
(int)-45.9f == -45;
必須滿足轉(zhuǎn)換前的數(shù)據(jù)類(lèi)型的位數(shù)要低于轉(zhuǎn)換后的數(shù)據(jù)類(lèi)型,例如: short數(shù)據(jù)類(lèi)型的位數(shù)為16位,就可以自動(dòng)轉(zhuǎn)換位數(shù)為32的int類(lèi)型,同樣float數(shù)據(jù)類(lèi)型的位數(shù)為32,可以自動(dòng)轉(zhuǎn)換為64位的double類(lèi)型。
2、強(qiáng)制類(lèi)型轉(zhuǎn)換
強(qiáng)制類(lèi)型轉(zhuǎn)換也稱(chēng)作顯式類(lèi)型轉(zhuǎn)換;條件是轉(zhuǎn)換的數(shù)據(jù)類(lèi)型必須是兼容的
如果被轉(zhuǎn)換的值的數(shù)據(jù)類(lèi)型大于其目標(biāo)類(lèi)型,將會(huì)丟失部分信息;
如:
int = 65;
char ch = x;
這樣的語(yǔ)句將報(bào)錯(cuò),因?yàn)閏har類(lèi)型精度低于int類(lèi)型,編譯器無(wú)法將其自動(dòng)轉(zhuǎn)換,只能進(jìn)行強(qiáng)制轉(zhuǎn)換
int = 65;
char ch = (char)x;
四、基本類(lèi)型和引用類(lèi)型的區(qū)別
五、基本數(shù)據(jù)類(lèi)型的賦值
基本數(shù)據(jù)類(lèi)型之間賦值,是將值進(jìn)行拷貝
例:int i = 8;
int j = 9;
i = j;
System.out.println("i="+i+"j="+j);
運(yùn)行結(jié)果為i = 9 ?j= 9。
i++;
j--;
System.out.println("i="+i+"j="+j);
運(yùn)行結(jié)果為i = 10 ? j = 8;
這說(shuō)明 i 和 j 的值存在于不同的空間,各自的操作都不影響。
六、引用類(lèi)型的賦值
引用類(lèi)型的賦值都是通過(guò)new調(diào)用構(gòu)造方法
Fish fish1 = new fish ("黑色",5kg)
Fish fish2 = new fish ("紅色",4kg)
引用類(lèi)型之間賦值,是虛地址之間的賦值
如:fish1 = fish2,把fish2的值賦給fish1,指的是把fish2的虛地址賦值給fish1,也就是二者將指向同一個(gè)實(shí)際對(duì)象"紅色的魚(yú)",4kg。
之后無(wú)論 再給fish1或fish2附新值,fish1和fish2都會(huì)同時(shí)變化的。
總結(jié)
以上是生活随笔為你收集整理的java语言中的数据类型_Java语言中关于数据类型的一些总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java动态添加属性_java – 动态
- 下一篇: mfc让图片与按钮一起_MFC 基础知识