java基礎之 類型轉換

1、自動類型轉換java

一、java中不一樣類型的數據在計算時,爲保證數據的精度,數據的類型會以大容量的類型爲主;spa

二、自動類型轉換的排序:code

char、byte、short -> int -> long -> float -> double

三、字符串和任意類型的數據進行鏈接運算(+),都會自動轉換爲字符串;對象

四、賦值運算時常量能夠進行自動類型轉化,變量不能夠,例如:blog

int a=1byte b=1; System.out.println(a+b); // 結果:2

byte a=1a=a+1; //結果:java: 不兼容的類型: 從int轉換到byte可能會有損失
//緣由:byte 在進行計算時會自動轉換爲int類型,這時就會變成 byte=int+int int類型被要求轉換爲byte,致使產生上面的錯誤。

 五、在進行加運算的時候比int小的數據類型(char、byte、short)之間的運算都會自動轉化成int的加運算,例如:排序

byte a = 1; byte b = 2; a = b + a; System.out.println("b="+a); 
// 結果:java: 不兼容的類型: 從int轉換到byte可能會有損失
// 緣由:b+a 數據類型自動轉化爲int了,不能賦值給byte類型的a

byte a = 1;
byte b = 2;
int c = b + a;
System.out.println(c);

// 結果:3

 

2、強制類型轉換繼承

一、將容量大的數據類型轉換爲容量小的數據類型,強制類型轉換可能會形成精度的下降或者溢出;字符串

二、強制類型轉換符(),括號裏爲要強制轉換爲何類型,例如:io

double a = 1.91; int b = (int) a; System.out.println(b); // 結果:1 // 這裏的 a 被強制轉換爲int類型,小數點被強制去了

 

三、字符串不能直接轉換爲基本數據類型,但能夠經過基本類型的封裝類型進行轉換,例如:ast

String s = "12"; int a = Integer.parseInt(s); System.out.println(a); //結果:12

 

四、boolean類型和字符串的類型轉換;

//boolean 轉 String
boolean f = true; String s = f + ""; System.out.println(s); //結果:true //String 轉 boolean
String s = "true"; boolean f = Boolean.parseBoolean(s); System.out.println(f); //結果:true

 

五、在繼承中,子類能夠自動轉型爲父類,可是父類強制轉換爲子類時只有當引用類型真正的身份爲子類時纔會強制轉換成功,不然失敗;

class Father {} class Son extends Father {} //Father 是 Son的父類
Father father = new Son(); Son son = (Son) father; //father雖然是Father類型的數據,可是它指向的實際上是 Son對象 //因此 (Son) father 是可行的
 Father father1 = new Father(); Son son1 = (Son) father1; //father指向的是 Father對象 //因此 (Son) father 是不可行的 //這將會報錯 java.lang.ClassCastException
相關文章
相關標籤/搜索