在Java中,,數(shù)據(jù)類型分為兩類,一類是基本數(shù)據(jù)類型,,另外一類是引用類型,。 而在C#中,數(shù)據(jù)類型分為三類,分別是基元類型,,值類型和引用類型,。其中基元類型是.net framework框架中預(yù)定義的類型,當(dāng)然,,基元類型中可能包含有值類型和引用類型,。下面是C#中數(shù)據(jù)類型的圖示: 這一篇要總結(jié)的是java中幾種基本的數(shù)據(jù)類型以及類型轉(zhuǎn)換,。大致分為以下幾點(diǎn): 1,,整數(shù)類型 2,浮點(diǎn)數(shù)類型 3,,字符類型 4,,布爾類型 5,,類型轉(zhuǎn)換之自動轉(zhuǎn)換 6,類型轉(zhuǎn)換之強(qiáng)制轉(zhuǎn)換 一,,整數(shù)類型整數(shù)類型按占用的內(nèi)存空間位數(shù)不同分為4種,,分別為8位的byte字節(jié)型,16位的short短整型,,32位的int整型,,以及64位的long長整型,。我們一般用int型,。 另外,整數(shù)有三種表示方法,,分別是十進(jìn)制,,八進(jìn)制和十六進(jìn)制。我們一般用十進(jìn)制來表示整型,。 下面是例子,,代碼如下: public class DataType1 { public static void main(String[] args) { final double PI = 3.14; // 聲明常量用final int R = 5; // 聲明整型 double ymj = PI * R * R; System.out.print("圓的面積等于:" + ymj); } } 程序輸出:圓的面積等于:78.5 總結(jié):從開頭C#數(shù)據(jù)類型的圖中可以看到,除了Java中定義的四種整型外,,C#還新增了四種整型,,分別是sbyte,ushort,uint,ulong 二,浮點(diǎn)數(shù)類型浮點(diǎn)數(shù)一般用來表示小數(shù),。Java中浮點(diǎn)數(shù)分為兩種,,一種是32位的單精度浮點(diǎn)數(shù)float,另一種是64位雙精度浮點(diǎn)數(shù)double,,它們在內(nèi)存 中占用的位數(shù)不同,,取值范圍也不同。Java默認(rèn)的浮點(diǎn)類型是double類型,。所以如果使用單精度浮點(diǎn)型的時候需要顯式加上F或者f后綴,,如果是雙精度 浮點(diǎn)型的話,可以加也可以不加,。示例和代碼如下: public class DataType2 { public static void main(String[] args) { // TODO Auto-generated method stub float f = 1.2345f; // 單精度浮點(diǎn)類型 double d1 = 1.234; // 雙精度浮點(diǎn)類型,沒有加后綴使用默認(rèn) double d2 = 1.234d; // 雙精度浮點(diǎn)型,,顯示加后綴 System.out.println("單精度浮點(diǎn)類型數(shù)值為:" + f); System.out.println("雙精度浮點(diǎn)類型數(shù)值為:" + d1); System.out.println("雙精度浮點(diǎn)類型數(shù)值為:" + d2); } } 程序輸出: 單精度浮點(diǎn)類型數(shù)值為:1.2345
總結(jié):C#在java定義的兩種浮點(diǎn)型的基礎(chǔ)上,,新增了decimal類型。它在內(nèi)存中占用128位的空間,,所以它的精度更高,,一般用在財務(wù)和貨幣計算中。
三,,字符類型字符類型一般用來表示單個字符,,特別要注意的是,String類型是一個字符數(shù)組,?;九cC#相同。 四,,布爾類型布爾類型一般用于判斷邏輯值真假的數(shù)據(jù)類型,,基本與C#相同。 五,,類型轉(zhuǎn)換之自動轉(zhuǎn)換因為Java和C#一樣,,都是強(qiáng)類型(即類型明確)語言,所以當(dāng)遇到不同數(shù)據(jù)類型同時操作時,,就需要進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,。 自動轉(zhuǎn)換有一個前提條件,就是兩種數(shù)據(jù)類型要兼容,,比如short和int類型是兼容的,,因為它們都是整型。而boolean類型不能轉(zhuǎn)換為int型,,因為它們是兩個不同的類型,。 自動轉(zhuǎn)換實際上就是將低位數(shù)轉(zhuǎn)換為高位數(shù)。下面是示例和代碼: public class TypeConvert1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub short s = 3; // 16位整數(shù) int i = s; // 32位整數(shù) float f = 1.0f; // 32位浮點(diǎn)數(shù) double d = f; // 64位浮點(diǎn)數(shù) long l = 1234l; // 64位整數(shù) double d2 = l; System.out.println("short自動轉(zhuǎn)換為int后的值為:" + i); System.out.println("float自動轉(zhuǎn)換為double后的值為" + d); System.out.println("long自動轉(zhuǎn)換為double后的值為" + d2); } } 程序輸出結(jié)果: short自動轉(zhuǎn)換為int后的值為:3
六,,類型轉(zhuǎn)換之強(qiáng)制轉(zhuǎn)換與自動轉(zhuǎn)換剛好相反,,強(qiáng)制轉(zhuǎn)換是將高位數(shù)的數(shù)據(jù)轉(zhuǎn)換為低位數(shù)的數(shù)據(jù),當(dāng)然,,前提也是轉(zhuǎn)換的數(shù)據(jù)類型必須兼容,。 強(qiáng)制轉(zhuǎn)換有可能會造成數(shù)據(jù)精度丟失,因為目標(biāo)數(shù)據(jù)的數(shù)據(jù)范圍要比源數(shù)據(jù)的范圍小,。下面是一個強(qiáng)制轉(zhuǎn)換的例子,。 public class TypeConvert2 { public static void main(String[] args) { // 基本數(shù)據(jù)類型轉(zhuǎn)換之強(qiáng)制轉(zhuǎn)換 int i = 123; byte b = (byte) i; // 強(qiáng)制轉(zhuǎn)換 System.out.println("int類型強(qiáng)制轉(zhuǎn)換為byte后值為:" + b); } } 程序輸出:int類型強(qiáng)制轉(zhuǎn)換為byte后值為:123 |
|