1. 程式人生 > >Java基礎知識-基本資料型別相互轉型

Java基礎知識-基本資料型別相互轉型

這是我第一次系統性的總結java這門語言的基礎知識用法,因本人經驗有限,所以在總結的過程中如果有錯誤或者有歧義等等之類的問題,都可以聯絡我QQ:208017534 不甚感激.

今天給大家介紹的是java中基本資料型別是如何進行相互轉換的。在介紹基本資料型別轉換之前,先給大家介紹一下什麼叫做基本資料型別:java中資料型別分為兩種:1.基本資料型別、2.引用資料型別

基本資料型別大致可以分為4種八類
4種:整型、浮點型、字元型和布林型
八類:整型(byte、short、int、long)預設型別為int型別、浮點型(float、double) 預設型別為double型別、字元型(char)、布林型(boolean)

基本資料型別各個型別的取值範圍(其中大小指在儲存過程中需要佔的二進位制位)


引用資料型別:引用資料型別包括陣列、類和介面

這一章節先不討論什麼是陣列,類,介面,封裝等等之類的,我會在後面幾個章節中著重介紹的。1.首先先來介紹一下byte的轉型方法,下面看程式碼:
        //byte注意事項 byte欄位在進行運算的時候發生轉型,
        // 這個時候不能再將byte運算結果直接賦值給byte欄位了,需要強制型別轉換才可以。
        byte b1=1;
        byte b2=2;
//        byte b3=b1+b2;//編譯不通過
        byte b4=(byte)(b1+b2);
        int i1=10;
//        byte b5=i1;//編譯不通過
        byte b6=20;
        int i2=b6;
        System.out.println("i2:"+i2);
2.short型別的轉換方法和byte類似,如果直接在short型別上進行相互運算就會發生編譯不通過的情形了。下面看具體例子:
       //short注意事項 short欄位在進行運算的時候發生轉型,
        // 這個時候不能再將short運算結果直接賦值給short欄位了,需要強制型別轉換才可以。
        short s1=1;
        short s2=2;
//        short s3=s1+s2;//編譯不通過
        short s4=(short)(s1+s2);
3.long型別的轉換就完全可以互相運算了,下面看具體例子:
        long l1=1;
        long l2=2;
        long l3=l1+l2;
        long l4=1+2;
4.並不是所有的型別都可以互相轉換的,有些型別差別太大轉換會編譯不通過或者執行出錯的。下面看看具體案例:
        //範圍大的轉為範圍小的可以不需要強制型別轉換就可以完成,
        //反之範圍小的轉換為範圍大,因為會發生精度損失,所以必須要強制型別轉換才可以,否則編譯不通過。
        //但是型別之間轉換也是要看欄位屬性是否相同,例如:int和double就可以進行互相轉換,可是int和String就不可以了。
        String str="str";
//        int i=(int)str;//編譯不通過

        //這裡有個特例就是Object的強制型別轉換,因為Object是一個高度抽象的型別,所以可以強制轉換為各種型別,
        //編譯都可以通過的,可是如果型別不符合,在執行的時候會發生錯誤。
        Object o="str";
        int i=(int)o;
5.數字字串又該如何轉型為相應的資料型別呢,下面看具體案例的介紹:
        //如果字串是數字型別的資料,又該怎麼進行轉換呢?
        int i=Integer.valueOf("1");
        float f=Float.valueOf("1.1");
        double d=Double.valueOf("1.23");
        //如果數字型別想轉為字串,又改如何進行轉換呢?
        String strI=String.valueOf(1);
        String strf=String.valueOf(1.0f);
        String strd=String.valueOf(1.22d);
        //還有一種更加堅簡單的方法是
        String strIi=1+"";
        String strff=1.0f+"";
        String strDd=1.23d+"";
6.型別轉換過程中精度損失具體是損失哪些?下面看具體案例介紹:
        //強制型別轉換的過程中,精度是如何進行損失的?小的資料量型別往大的轉型又是如何擴大精度的呀?
        int i = 1;
        float f1 = 1.3f;
        float f2 = 1.7f;

        double d1 = 1.4d;
        double d2 = 1.8d;
        double d3 = 2.0;

        int i1 = (int) f1;
        int i2 = (int) f2;

        int i3 = (int) d1;
        int i4 = (int) d2;
        int i5 = (int) d3;

        float ff1 = i;
        float ff2 = (float) d1;
        double dd1 = i;
        double dd2 = f1;

        System.out.println("i1:" + i1);
        System.out.println("i2:" + i2);
        System.out.println("i3:" + i3);
        System.out.println("i4:" + i4);
        System.out.println("i4:" + i4);
        System.out.println("ff1:" + ff1);
        System.out.println("ff2:" + ff2);
        System.out.println("dd1:" + dd1);
        System.out.println("dd2:" + dd2);

        //從結果可以看出在轉型的過程中如果是int型別的話,在轉化為float或者double都是變成(數值.0)的存在。
        //如果是float或者double轉換為int的時候都是浮點型前面的整數部分給int,浮點型小樹後面的精度損失掉了。
        //如果是float和double進行互相轉換的話就會發生很奇怪的事情,就是例如1.3f變成1.2999999523162842d了
        //所有最好不要再float和double型別上面直接進行互相轉換,如果想要原值轉換最好是利用字串來進行轉換。
        //例如下面將給出的這個例子:

        float f=1.23f;
        double dd11,dd22;
        String strF=f+"";
        dd11=Double.valueOf(strF);
        dd22=f;
        System.out.println("f:"+f);
        System.out.println("dd11:"+dd11);
        System.out.println("dd22:"+dd22);
7.字元和其他資料型別轉換過程是如何進行的呢?下面看看具體案例介紹:
        //型別轉換時有字元型參與運算
//        當有字元參與運算時,系統首先回去找對應的ASCII碼值,然後在參與運算   如  ‘a’ + 6 = 103
//        注意:int型別是可以賦值給char型別的   如 char  a  = (char) 97;
        char c=(char)97;
        int i='a';
        System.out.println("c:"+c);
        System.out.println("i"+i);

ASCII碼錶:


今天關於基本型別的轉換問題就介紹到這裡,因為本人經驗有限,沒辦法介紹的很完全,所以只能挑我日常經常使用的部分給大家做介紹。
如果大家對文章有什麼問題或者疑意之類的,可以加我訂閱號在上面留言,訂閱號上面我會定期更新最新部落格。如果嫌麻煩可以直接加我wechat:lzqcode

相關推薦

Java基礎知識-基本資料型別相互轉型

這是我第一次系統性的總結java這門語言的基礎知識用法,因本人經驗有限,所以在總結的過程中如果有錯誤或者有歧義等等之類的問題,都可以聯絡我QQ:208017534 不甚感激.今天給大家介紹的是java中

Java基礎基本資料型別到底是幾種?

如果連基本資料型別都不知道,恐怕是還沒入門。當然,有些人不去記,肯定不知道。就知道常用的有 int。其他,沒了。 此文只是說明 基本資料型別有幾種?具體 區別 另行檢視其它文章。 基本資料型別到底有幾種? 7種? 在我的腦海中,好多人還以為常用的基本型別有7種,當

java基礎之----基本資料型別和引用資料型別的引數傳遞過程(一)

值傳遞:方法呼叫時,實際引數把它的值傳遞給對應的形式引數,方法執行中形式引數值的改變不影響實際引數的值。 引用傳遞:也稱為傳地址。方法呼叫時,實際引數的引用(地址,而不是引數的值)被傳遞給方法中相對應的形式引數,在方法執行中,對形式引數的操作實際上就是對實際引

Java基礎基本資料型別、封裝型別

基本資料型別有4類8種: byte、short、int、long、float、double、boolean、char (在棧中可以直接分配記憶體的資料是基本資料型別)(除此之外都是引用資料型別:資料的

javase基礎知識(一):java簡介和基本資料型別

byte age = 21;//定義資料型別為byte的變數age,並給其賦值為21. short num = 5;//定義資料型別為short的變數num,並給其賦值為5. int age = 22;//定義資料型別為int的變數age,並給其賦值為22. long money = 10000L; //定義

Java 基本資料型別 相互轉換

int -> String String s=String.valueOf(12345); String -> int int i=Integer.parseInt("123"); String->char "12345".charAt(index)  返回位

Java String和基本資料型別相互轉換

1.String->基本資料型別 int:Integer.parseInt(Str) double:Double.parseDouble(Str) float:Float.parseFloat(Str) byte:Byte.parseByte(Str) long:Long.

Java基礎學習總結(122)——Java八種基本資料型別的包裝類及其裝箱拆箱詳解

一、基本資料型別及對應的包裝類基本資料型別對應的包裝類byteByteshortShortintIntegerlongLongcharCharacterfloatFloatdoubleDoublebooleanBoolean每個包裝類的物件可以封裝一個相應的基本型別的資料,並提供了其它一些有用的方法。包裝類物

Java初認識--基本資料型別(int 和byte之間賦值)預設值 型別強轉

主類和主方法 Test.java–是原始檔,原始檔必須與主類名(public class )保持一致,一個原始檔只能有一個主類 ,主方法存在與主類中。 Test.java 原始檔 主類:public class Test 主方法 : public static void main(Strin

java中的基本資料型別轉換

1.java中的基本資料型別轉換 java基本資料型別的轉換是需要兩個基本事項: 1.boolean型不進行型別轉換。 2.Java中基本資料型別按精度從“低”到“高”排列順序     byte  short  char  int&

java在處理基本資料型別加減乘除操作注意

1.int /int 得到的結果轉double 舉例: int a=1; int b=2; double d=a/b 上面結果通常認為是0.5 ,但結果是0.0;正確的是: int a=1; int b=2; double d=(double)a/b   2. do

Python學習之路——Python基礎基本資料型別(列表、元組和字典)

基本資料型別 數字 字串 列表 list 元組 tuple 字典 dict 布林值 bool 列表和元組 列表:有序,元素可以被修改元組: 書寫格式:元組的一級元素不可被修改,不能被增加或者刪除,一般寫元租的時候,推薦在最後加入',' 索引:v =

Python學習之路——Python基礎基本資料型別

基本資料型別 數字 字串 列表 list 元祖 tuple 字典 dict 布林值 bool ×××的魔法 數字 將字串轉換為數字:int a = "123" print(type(a),a) b = int(a) print(type(b),b) n

Java中的基本資料型別型別轉換規則(自動、強制)、原反補碼、使用者自定義識別符號

基本資料型別 資料型別指明瞭變數和表示式的狀態和行為。 基本資料型別 關鍵字 記憶體中佔用位元組數 取值範圍 布林型 boolean 1位元組(8bit)

Java中的基本資料型別和引用資料型別的區別

一、資料型別 Java中的資料型別分為兩大類,基本資料型別和引用資料型別。 1、基本資料型別 基本資料型別只有8種,可按照如下分類 ①整數型別:long、int、short、byte ②浮點型別:float、double ③字元型別:char ④布林型別:boolean No.

java基礎----char等資料型別

1.先介紹其他幾個 (1)boolean型別取值true,false; (2)整數常量三種進位制:eg 142(十進位制)     0142(八進位制)     0x142(十六進位制) (3)基本資料型別轉

python 基礎 -03 基本資料型別(int, bool, str)

一 python的基礎資料型別    1. int ==> 整數. 主要⽤來進⾏數學運算  2. str ==> 字串, 可以儲存少量資料並進⾏相應的操作    3. bool==>判斷真假, True, False  4. list=

Java種的基本資料型別轉換(自動、強制、提升)

Java種的8大基本資料型別,以及它們所佔記憶體大小和範圍 1、自動型別轉換 自動型別轉換是指:數字表示範圍小的資料型別可以自動轉換成範圍大的資料型別。 如: long l = 100; int i = 200; long ll = i; 具體自動轉換如如下圖所示:

Python基礎入門----基本資料型別

                                          &nb

基礎知識 各類資料型別方法

列表: 中括號括起來,分割每個元素列表中的元素可以是數字,字串,列表,布林值...列表中可以 巢狀任何型別可以通過 索引 切片 進行取值可以進行 while 迴圈 for迴圈可以用del刪除支援 in 操作 字串轉換為列表時,直接在字串前加str,字串中的每個字元將被當成列表中的獨立的元素。 而將列表轉化