java short int 转换_基本类型'short'-Java中的强制转换
小編典典
正如上文短C# (也為其他語言編譯器以及Java一樣)
從short到int,long,float,double或decimal進行了預定義的隱式轉換。
你不能將較大存儲大小的非文字數字類型隱式轉換為短類型(有關整數類型的存儲大小,請參閱“整數類型表”)。例如,考慮以下兩個短變量x和y:
short x = 5, y = 12;
以下賦值語句將產生編譯錯誤,因為賦值運算符右側的算術表達式默認情況下計算為int。
short z = x + y; // Error: no conversion from int to short
要解決此問題,請使用強制轉換:
short z = (short)(x + y); // OK: explicit conversion
盡管目標變量具有相同的存儲大小或更大的存儲大小,但是可以使用以下語句:
int m = x + y;
long n = x + y;
一個很好的后續問題是:
“為什么賦值運算符右側的算術表達式默認計算為int”?
第一個答案可以在以下位置找到:
分類并正式驗證整數常量折疊
在Java語言規范定義究竟如何整數來表示,如何整數算術表達式進行評估。這是Java的重要屬性,因為該編程語言已設計為可用于Internet上的分布式應用程序。需要Java程序獨立于執行它的目標機器來產生相同的結果。
相比之下,C(以及大多數廣泛使用的命令式和面向對象編程語言)更加草率,并保留了許多重要特征。這種不正確的語言規范背后的意圖很明顯。通過使用目標
總結
以上是生活随笔為你收集整理的java short int 转换_基本类型'short'-Java中的强制转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VSCode无法跳转到外部函数定义
- 下一篇: java int short区别_Jav