基本型別和抽象型別的型別轉換是不同的,基本型別的轉換會改變記憶體中的資料;抽象型別並不對物件本身做更改,而是改變可見性。
這是由系統自動完成的型別轉換,由jvm自動完成。
轉換規則是對型別進行提公升,也可以說是從儲存範圍小的型別轉換到到儲存範圍大的型別:
byte->short/char->int->long->float->double
示例**:
short shortfigure = 1;
int commonfigure = shortfigure;//賦值時,jvm首先將shortfigure轉換為int型,然後賦給commonfigure
同樣的,如果我們對shortfigure進行操作,比如shortfigure+1運算會自動提公升表示式的型別,運算將返回int型的結果。
開發人員可以在程式中顯式轉換變數的型別。這種型別轉換可能會損失精度。
簡單型別的轉換規則是從儲存範圍大的型別到儲存範圍小的型別:
double->float->long->int->short/char->byte
示例**:
double doublefigure = 1.10;
int commonfigure = (int)doublefigure;
某些情況下父類可以轉換為子類。
示例**:
parent parentobject = new child();
child childobject = (child) parentobject;
與簡單型別的轉換機制不同,上述**本質上並沒有對物件做任何的改變,改變的僅僅是物件引用。
parentobject是乙個parent類的引用,它引用所指向的物件是乙個child物件。childobject也指向這個child物件,不同的是他是乙個對child類的引用。
它們的不同僅僅是對child物件的可見性。
java中的型別轉換
可能我們只是留意了乙個int代表的是整數,占用了4個位元組,而float可以代表小數,而double呢,好吧,能代表更精確的小數,那到底有多精確呢 如果,你感覺你的程式對精確度要求很高,那麼你可以使用double 我們往往也都是那麼一說 primitive型別之間的轉換?好的,乙個int占用4個位元...
java中的型別轉換
基本資料型別分為boolean和數值型別,如下圖依次需要注意的是 boolean型別的預設值是false,char除了可以定義數字,乙個以用來定義乙個字元,如 char a 王 乙個位元組表示八位,byte,short,int,long 都是有數值符號,其中float 定義時 需要注意 float ...
JAVA中int String的型別轉換
int string int i 12345 string s 第一種方法 s i 第二種方法 s string.valueof i 這兩種方法有什麼區別呢?作用是不是一樣的呢?是不是在任何下都能互換呢?string int s 12345 int i 第一種方法 i integer.parsein...