一旦將各種類型的變數和常數放在一個表達式中,它們就可以更改為相似的類型。這種將一種預先定義型別轉換為另一種類型的技術在 Java 中稱為型別轉換。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
我們在程式語言中使用兩種不同類型的轉換。
如果型別轉換是在沒有程式設計師參與的情況下透過編譯器立即進行的,則這種型別轉換稱為隱式型別轉換。編譯器從根本上鼓勵每個操作數都轉向最大操作數的資料類型。在整個資料轉換過程中不會發生資料遺失。轉換過程中不會拋出異常,因此被稱為型別安全。較小數量的轉換或較大數量的轉換可以是隱式轉換。整數型別資料轉換為浮點數。
float i=0; int j=10; i=j;
// 這可以是隱式轉換,因為浮點數可以大於整數,因此不會缺少數據,也不例外。
可以透過程式設計師強制執行的型別轉換稱為顯式型別轉換。從根本上講,程式設計師使表達式成為特定類型。顯式類型轉換可以稱為型別轉換。資料轉換期間可能會也可能不會發生資料遺失。因此存在細節遺失的可能性。如果它嘗試在不進行類型轉換的情況下執行,它可能會拋出錯誤。較大數字到較小數字的轉換可以是明確轉換。
float k=123.456 int i= (int) k
// 這可以是明確轉換以及 (int) 是型別轉換、運算子。此時,我們可能會設法逃脫異常,但您可以發現明顯的資料遺失。即 i=123
// .456 可以在轉換過程中刪除
與其他程式語言一樣,java 中有兩種類型的轉換:
下面詳細提到的型別轉換範例:
代碼:
我們這裡有一個簡單的程序,頂部有一些聲明,float、double、byte、short 和 long,並且每個變數都有命名以幫助識別它們的類型,例如 float 是 floatVal,
代碼:
長就是長Val
代碼:
如果程式運行,它只會列印出成功訊息。
所以讓我們看看一些類型轉換是如何發揮作用的。首先,讓我們繼續創建一個變數。我們有短路,我們就稱之為結果。
事實上,我們將其命名為 result1。讓我們來做一個簡單的作業。首先,我們將 byteVal 分配給它。現在,正如我們所期望的,如果我們繼續運行它,那麼就會成功運行。
代碼:
輸出:
我們知道這是一個有效的分配,因為一個位元組可以被分配為一個短整型,因為這是一個擴大轉換。
但是,如果我們採用這個byteVal,並將其設為longVal,那麼現在它實際上是一個long;如果我們運行這個,我們會在這裡收到一條錯誤訊息,指出類型不相容,可能會丟失從長到短的轉換。
代碼:
所以我們在這裡可以做的是我們可以進行明確強制轉換。我們先簡單介紹一下。現在它是有效的,所以我們可以運行它。
代碼:
當然,它確實有效。因為多頭不能轉為空頭,因為那是縮小轉換。
輸出:
但是透過將明確強制轉換放在它前面,現在它是有效的。如果我們願意,我們可以非常明確地放置一個強制轉換符號,並說你知道,我們知道雖然字節轉換是合法的,但我們想通過將短強制轉換放在那裡來明確表明我們正在強制轉換它,我們可以這樣做那個,而且這是完全合法的。
代碼:
輸出:
現在,讓我們來看看另一個場景。我們將建立另一個變量,我們稱之為 result2, 並且 result2 也很短。我們在這裡要做的就是取出 byteVal,然後減去 longVal。現在我們知道這是不合法的,因為表達式的結果將是其中最大整數的大小,即長度。
代碼:
因此,如果我們執行此命令,我們會收到一條錯誤訊息,指出將長整型轉換為短整型無效。
但是假設我們想要繼續並保持結果盡可能短。我們需要進行演員陣容。但我們想將這次轉換為整個結果的值。所以我們要做的就是把短演員表放在它前面。
將短演員表放在此。並將整個內容括在括號中。並運行它。
代碼:
它將成功運作。
輸出:
現在宣告另一個名為 result3 的變量,但將其宣告為 long。所以得到結果 3,我們在這裡要做的就是分配我們的 longVal – floatVal。所以我們運行它,從 float 轉換為 long 時會出現錯誤,因為每當我們有整數類型和任何浮點類型時,結果都會是浮點類型。
代碼:
所以讓我們繼續將結果轉換為浮點數。因此,透過將其設為浮動,我們應該能夠繼續運行它。並成功運行。
代碼:
輸出:
但是現在,如果我們在這裡獲取floatVal 並將其轉換為doubleVal,並且如果我們嘗試運行它,我們會收到錯誤,因為它表示結果將是double,因為當您執行整數時和浮點數,它是方程式中最大浮點數的大小。
代碼:
所以讓我們繼續將結果加倍,這樣現在我們就可以運行它了。
代碼:
輸出:
1. Java 中的變數是強型別
2. 原始型
3.型別轉換
以上是Java 中的型別轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!