日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java开发中数据类型之间的转换

發(fā)布時間:2024/7/23 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java开发中数据类型之间的转换 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1).簡單類型數(shù)據(jù)間的轉(zhuǎn)換,有兩種方式:自動轉(zhuǎn)換和強迫轉(zhuǎn)換,通常產(chǎn)生在表達式中或方法的參數(shù)傳遞時。

自動轉(zhuǎn)換

具體地講,當1個較"小"數(shù)據(jù)與1個較"大"的數(shù)據(jù)1起運算時,系統(tǒng)將自動將"小"數(shù)據(jù)轉(zhuǎn)換成"大"數(shù)據(jù),再進行運算。而在方法調(diào)用時,實際參數(shù)較"小",而被調(diào)用的方法的情勢參數(shù)數(shù)據(jù)又較"大"時(若有匹配的,固然會直接調(diào)用匹配的方法),系統(tǒng)也將自動將"小"數(shù)據(jù)轉(zhuǎn)換成"大"數(shù)據(jù),再進行方法的調(diào)用,自然,對多個同名的重載方法,會轉(zhuǎn)換成最"接近"的"大"數(shù)據(jù)并進行調(diào)用。這些類型由"小"到"大"分別為 (byte,short,char)--int--long--float—double。這里我們所說的"大"與"小",其實不是指占用字節(jié)的多少,而是指表示值的范圍的大小。

①下面的語句可以在Java中直接通過:

byte b;int i=b; long l=b; float f=b; double d=b;

②如果低級類型為char型,向高級類型(整型)轉(zhuǎn)換時,會轉(zhuǎn)換為對應(yīng)ASCII碼值,例如

char c='c'; int i=c;

System.out.println("output:"+i);輸出:output:99;

③對byte,short,char3種類型而言,他們是平級的,因此不能相互自動轉(zhuǎn)換,可使用下述的強迫類型轉(zhuǎn)換。

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

強迫轉(zhuǎn)換

將"大"數(shù)據(jù)轉(zhuǎn)換為"小"數(shù)據(jù)時,你可使用強迫類型轉(zhuǎn)換。即你必須采取下面這類語句格式: int n=(int)3.14159/2;可以想象,這類轉(zhuǎn)換肯定可能會致使溢出或精度的降落。

2)表達式的數(shù)據(jù)類型自動提升, 關(guān)于類型的自動提升,注意下面的規(guī)則。

①所有的byte,short,char型的值將被提升為int型;

②如果有1個操作數(shù)是long型,計算結(jié)果是long型;

③如果有1個操作數(shù)是float型,計算結(jié)果是float型;

④如果有1個操作數(shù)是double型,計算結(jié)果是double型;

例, byte b; b=3; b=(byte)(b*3);//必須聲明byte。

3)包裝類過渡類型轉(zhuǎn)換

1般情況下,我們首先聲明1個變量,然后生成1個對應(yīng)的包裝類,就能夠利用包裝類的各種方法進行類型轉(zhuǎn)換了。例如:

①當希望把float型轉(zhuǎn)換為double型時:

float f1=100.00f;

Float F1=new Float(f1);

double d1=F1.doubleValue();//F1.doubleValue()為Float類的返回double值型的方法

②當希望把double型轉(zhuǎn)換為int型時:

double d1=100.00;

Double D1=new Double(d1);

int i1=D1.intValue();

簡單類型的變量轉(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)

而在各個包裝類中,總有形為××Value()的方法,來得到其對應(yīng)的簡單類型數(shù)據(jù)。利用這類方法,也能夠?qū)崿F(xiàn)不同數(shù)值型變量間的轉(zhuǎn)換,例如,對1個雙精度實型類,intValue()可以得到其對應(yīng)的整型變量,而doubleValue()可以得到其對應(yīng)的雙精度實型變量。

4)字符串與其它類型間的轉(zhuǎn)換

其它類型向字符串的轉(zhuǎn)換

①調(diào)用類的串轉(zhuǎn)換方法:X.toString();

②自動轉(zhuǎn)換:X+"";

③使用String的方法:String.volueOf(X);

字符串作為值,向其它類型的轉(zhuǎn)換

①先轉(zhuǎn)換成相應(yīng)的封裝器實例,再調(diào)用對應(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 );

③Character的getNumericValue(char ch)方法

5)Date類與其它數(shù)據(jù)類型的相互轉(zhuǎn)換

整型和Date類之間其實不存在直接的對應(yīng)關(guān)系,只是你可使用int型為分別表示年、月、日、時、分、秒,這樣就在二者之間建立了1個對應(yīng)關(guān)系,在作這類轉(zhuǎn)換時,你可使用Date類構(gòu)造函數(shù)的3種情勢:

①Date(int year, int month, int date):以int型表示年、月、日

②Date(int year, int month, int date, int hrs, int min):以int型表示年、月、日、時、分

③Date(int year, int month, int date, int hrs, int min, int sec):以int型表示年、月、日、時、分、秒

在長整型和Date類之間有1個很有趣的對應(yīng)關(guān)系,就是將1個時間表示為距離格林尼治標準時間1970年1月1日0時0分0秒的毫秒數(shù)。對這類對應(yīng)關(guān)系,Date類也有其相應(yīng)的構(gòu)造函數(shù):Date(long date)。

獲得Date類中的年、月、日、時、分、秒和星期你可使用Date類的getYear()、getMonth()、getDate()、getHours()、getMinutes()、getSeconds()、getDay()方法,你也能夠?qū)⑵淅斫鉃閷ate類轉(zhuǎn)換成int。

而Date類的getTime()方法可以得到我們前面所說的1個時間對應(yīng)的長整型數(shù),與包裝類1樣,Date類也有1個toString()方法可以將其轉(zhuǎn)換為String類。

有時我們希望得到Date的特定格式,例如20020324,我們可使用以下方法,首先在文件開始引入,

import java.text.SimpleDateFormat;

import java.util.*;

java.util.Date date = new java.util.Date();

?

//如果希望得到Y(jié)YYYMMDD的格式

SimpleDateFormat sy1=new SimpleDateFormat("yyyyMMDD");

String dateFormat=sy1.format(date);

?

//如果希望分開得到年,月,日

SimpleDateFormat sy=new SimpleDateFormat("yyyy");

SimpleDateFormat sm=new SimpleDateFormat("MM");

SimpleDateFormat sd=new SimpleDateFormat("dd");

String syear=sy.format(date);

String smon=sm.format(date);

String sday=sd.format(date);

總結(jié):只有boolean不參與數(shù)據(jù)類型的轉(zhuǎn)換

(1).自動類型的轉(zhuǎn)換:a.常數(shù)在表數(shù)范圍內(nèi)是能夠自動類型轉(zhuǎn)換的

b.數(shù)據(jù)范圍小的能夠自動數(shù)據(jù)類型大的轉(zhuǎn)換(注意特例)

int到float,long到float,long到double 是不會自動轉(zhuǎn)換的,不然將會丟失精度

c.援用類型能夠自動轉(zhuǎn)換為父類的

d.基本類型和它們包裝類型是能夠相互轉(zhuǎn)換的

(2).強迫類型轉(zhuǎn)換:用圓括號括起來目標類型,置于變量前

為了讓學(xué)習(xí)變得輕松、高效,今天給大家免費分享一套Java入門教學(xué)資源。幫助大家在成為Java架構(gòu)師的道路上披荊斬棘。需要資料的歡迎加入學(xué)習(xí)交流群:9285,05736

總結(jié)

以上是生活随笔為你收集整理的Java开发中数据类型之间的转换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。