日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Java中數(shù)據(jù)類型及其之間的轉(zhuǎn)換

 天涯旅人【】 2013-01-13

Java中數(shù)據(jù)類型及其之間的轉(zhuǎn)換

基本的數(shù)據(jù)類型

基本類型有以下四種:
1int長(zhǎng)度數(shù)據(jù)類型有:byte(8bits)short(16bits)、int(32bits)long(64bits)、
2float長(zhǎng)度數(shù)據(jù)類型有:?jiǎn)尉龋?/font>32bits float)、雙精度(64bits double,JAVA中將小數(shù)默認(rèn)為double類型,若要定義float需在數(shù)據(jù)后面用f聲明;
3boolean類型變量的取值有:turefalse
4char數(shù)據(jù)類型有:unicode字符,16
對(duì)應(yīng)的類類型:Integer、Float、BooleanCharacter、Double、Short、Byte、Long

基本的數(shù)據(jù)類型由低級(jí)到高級(jí)分別為:(byte、short、char)——int——long——float——double

PS:此處的“級(jí)別”是指表示值的范圍的大小

數(shù)據(jù)類型之間的轉(zhuǎn)轉(zhuǎn)換

分為以下幾種情況:

1)低級(jí)到高級(jí)的自動(dòng)類型轉(zhuǎn)換;

2)高級(jí)到低級(jí)的強(qiáng)制類型轉(zhuǎn)換(會(huì)導(dǎo)致溢出或丟失精度);

3)基本類型向類類型轉(zhuǎn)換

4)基本類型向字符串的轉(zhuǎn)換;

5)類類型向字符串轉(zhuǎn)換

基本數(shù)據(jù)類型之間的轉(zhuǎn)換規(guī)則
1.在一個(gè)雙操作數(shù)以及位運(yùn)算等算術(shù)運(yùn)算式中,會(huì)根據(jù)操作數(shù)的類型將低級(jí)的數(shù)據(jù)類型自動(dòng)轉(zhuǎn)換為高級(jí)的數(shù)據(jù)類型,分為以下幾種情況:

1)只要兩個(gè)操作數(shù)中有一個(gè)是double類型的,另一個(gè)將會(huì)被轉(zhuǎn)換成double類型,并且結(jié)果也是double類型;

2)只要兩個(gè)操作數(shù)中有一個(gè)是float類型的,另一個(gè)將會(huì)被轉(zhuǎn)換成float類型,并且結(jié)果也是float類型;

3)只要兩個(gè)操作數(shù)中有一個(gè)是long類型的,另一個(gè)將會(huì)被轉(zhuǎn)換成long類型,并且結(jié)果也是long類型;

4)兩個(gè)操作數(shù)(包括byte、shortint、char)都將會(huì)被轉(zhuǎn)換成int類型,并且結(jié)果也是int類型。  

2. 如果低級(jí)類型為char型,向高級(jí)類型(整型)轉(zhuǎn)換時(shí),會(huì)轉(zhuǎn)換為對(duì)應(yīng)ASCII碼值再做其它類型的自動(dòng)轉(zhuǎn)換。

3. 對(duì)于byte,short,char三種類型而言,他們是平級(jí)的,因此不能相互自動(dòng)轉(zhuǎn)換,可以使用下述的強(qiáng)制類型轉(zhuǎn)換。 如:

short i=99 ;
char c=(char)i;
System.out.println("output:"+c); 

4. 不能在布爾值和任何數(shù)字類型間強(qiáng)制類型轉(zhuǎn)換;

5. 不同級(jí)別數(shù)據(jù)類型間的強(qiáng)制轉(zhuǎn)換,可能會(huì)導(dǎo)致溢出或精度的下降。 

6. 當(dāng)字節(jié)類型變量參與運(yùn)算,java作自動(dòng)數(shù)據(jù)運(yùn)算類型的提升,將其轉(zhuǎn)換為int類型。例如:byte b;
    b=3;
    b=(byte)(b*3);//必須聲明byte。 

包裝數(shù)據(jù)類型與基本數(shù)據(jù)類型之間的轉(zhuǎn)換

簡(jiǎn)單類型的變量轉(zhuǎn)換為相應(yīng)的包裝類,可以利用包裝類的構(gòu)造函數(shù)。即:Boolean(boolean value)Character(char value)、Integer(int value)Long(long value)、Float(float value)、Double(double value)
而在各個(gè)包裝類中,總有形為××Value()的方法,來(lái)得到其對(duì)應(yīng)的簡(jiǎn)單類型數(shù)據(jù)。利用這種方法,也可以實(shí)現(xiàn)不同數(shù)值型變量間的轉(zhuǎn)換,例如,對(duì)于一個(gè)雙精度實(shí)型類,intValue()可以得到其對(duì)應(yīng)的整型變量,而doubleValue()可以得到其對(duì)應(yīng)的雙精度實(shí)型變量。
1.字符串與其它類型間的轉(zhuǎn)換
其它類型向字符串的轉(zhuǎn)換
調(diào)用類的串轉(zhuǎn)換方法:X.toString();
自動(dòng)轉(zhuǎn)換:X+“”;
使用String的方法:String.volueOf(X);
字符串作為值,向其它類型的轉(zhuǎn)換
先轉(zhuǎn)換成相應(yīng)的封裝器實(shí)例,再調(diào)用對(duì)應(yīng)的方法轉(zhuǎn)換成其它類型
例如,字符中32.1轉(zhuǎn)換double型的值的格式為:new Float(32.1).doubleValue()。也可以用:Double.valueOf(32.1).doubleValue()
靜態(tài)parseXXX方法
String s = "1";
byte b = Byte.parseByte( s );
short t = Short.parseShort( s );
int i = Integer.parseInt( s );
long l = Long.parseLong( s );
Float f = Float.parseFloat( s );
Double d = Double.parseDouble( s );
CharactergetNumericValue(char ch)方法
具體可查閱api。 

轉(zhuǎn)換實(shí)例

1基本類型向類類型轉(zhuǎn)換

正向轉(zhuǎn)換:通過(guò)類包裝器來(lái)new出一個(gè)新的類類型的變量
Integer a= new Integer(2);
反向轉(zhuǎn)換:通過(guò)類包裝器來(lái)轉(zhuǎn)換
int b=a.intValue();

通過(guò)類包裝器——>基本數(shù)據(jù)類型
eg1:int i=Integer.parseInt(123)
說(shuō)明:此方法只能適用于字符串轉(zhuǎn)化成整型變量
eg2: float f=Float.valueOf(123).floatValue()
說(shuō)明:上例是將一個(gè)字符串轉(zhuǎn)化成一個(gè)Float對(duì)象,然后再調(diào)用這個(gè)對(duì)象的floatValue()方法返回其對(duì)應(yīng)的float數(shù)值。
eg3: boolean b=Boolean.valueOf(123).booleanValue()
說(shuō)明:上例是將一個(gè)字符串轉(zhuǎn)化成一個(gè)Boolean對(duì)象,然后再調(diào)用這個(gè)對(duì)象的booleanValue()方法返回其對(duì)應(yīng)的boolean數(shù)值。
eg4:double d=Double.valueOf(123).doubleValue()
說(shuō)明:上例是將一個(gè)字符串轉(zhuǎn)化成一個(gè)Double對(duì)象,然后再調(diào)用這個(gè)對(duì)象的doubleValue()方法返回其對(duì)應(yīng)的double數(shù)值。
eg5: long l=Long.valueOf(123).longValue()
說(shuō)明:上例是將一個(gè)字符串轉(zhuǎn)化成一個(gè)Long對(duì)象,然后再調(diào)用這個(gè)對(duì)象的longValue()方法返回其對(duì)應(yīng)的long數(shù)值。
eg6: char=Character.valueOf(123).charValue()
說(shuō)明:上例是將一個(gè)字符串轉(zhuǎn)化成一個(gè)Character對(duì)象,然后再調(diào)用這個(gè)對(duì)象的charValue()方法返回其對(duì)應(yīng)的char數(shù)值。

2基本類型向字符串的轉(zhuǎn)換
正向轉(zhuǎn)換:
如下:
System.out.println(""+2+3);// ""2轉(zhuǎn)成字符串操作;
System.out.println(2+3);   // 不存在轉(zhuǎn)換。
System.out.println(2+3+"");// 前兩個(gè)數(shù)值相加后,被“""轉(zhuǎn)成字符串。
System.out.println(2+""+3);// 同第一個(gè)。

輸出顯示為:23,5,5,23

3類類型向字符串轉(zhuǎn)換

正向轉(zhuǎn)換:因?yàn)槊總€(gè)類都是object類的子類,而所有的object類都有一個(gè)toString()函數(shù),所以通過(guò)toString()函數(shù)來(lái)轉(zhuǎn)換即可
反向轉(zhuǎn)換:通過(guò)類包裝器new出一個(gè)新的類類型的變量
eg1: int i=Integer.valueOf(123).intValue()
說(shuō)明:上例是將一個(gè)字符串轉(zhuǎn)化成一個(gè)Integer對(duì)象,然后再調(diào)用這個(gè)對(duì)象的intValue()方法返回其對(duì)應(yīng)的int數(shù)值。
eg2: float f=Float.valueOf(123).floatValue()
說(shuō)明:上例是將一個(gè)字符串轉(zhuǎn)化成一個(gè)Float對(duì)象,然后再調(diào)用這個(gè)對(duì)象的floatValue()方法返回其對(duì)應(yīng)的float數(shù)值。
eg3: boolean b=Boolean.valueOf(123).booleanValue()
說(shuō)明:上例是將一個(gè)字符串轉(zhuǎn)化成一個(gè)Boolean對(duì)象,然后再調(diào)用這個(gè)對(duì)象的booleanValue()方法返回其對(duì)應(yīng)的boolean數(shù)值。
eg4:double d=Double.valueOf(123).doubleValue()
說(shuō)明:上例是將一個(gè)字符串轉(zhuǎn)化成一個(gè)Double對(duì)象,然后再調(diào)用這個(gè)對(duì)象的doubleValue()方法返回其對(duì)應(yīng)的double數(shù)值。
eg5: long l=Long.valueOf(123).longValue()
說(shuō)明:上例是將一個(gè)字符串轉(zhuǎn)化成一個(gè)Long對(duì)象,然后再調(diào)用這個(gè)對(duì)象的longValue()方法返回其對(duì)應(yīng)的long數(shù)值。
eg6: char=Character.valueOf(123).charValue()
說(shuō)明:上例是將一個(gè)字符串轉(zhuǎn)化成一個(gè)Character對(duì)象,然后再調(diào)用這個(gè)對(duì)象的charValue()方法返回其對(duì)應(yīng)的char數(shù)值。




    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多