java short =_java short类型取值范围与用法
short 16位? 最大是 2^15,最小-32768
shortint -128..128 1 帶符號8位
inteter -32768..32767 2 帶符號16位
longint -2147483648..2147483647 4 帶符號32位
byte 0..255 1 帶符號8位
word 0..65535 2 帶符號16位
實例
public class MainClass {
public static void main(String[] arg) {
short smallNumber = 1234;
System.out.println(smallNumber);
}
}
short s = 1;
為什么s = 1沒錯,
s = s 1就有錯?問題補充:
原來是賦值的時候類型不匹配,而不是相加的時候類型不匹配,
s = (short)(s 1);
解析
首先看“s = s 1”為什么錯。
Java編譯器認為一個像“1”這樣的直接數是一個int型。Java的自動類型轉換是一個占用空間少的類型可以自動轉換成占用空間大的類型,反之則必須強制類型轉換,否則報錯。“s 1”這個表達式因為是short型和int型相加,因此自動轉換成了int型,此時再用“s = s 1”賦值給一個short型而沒有強制類型轉換那么自然報錯。
而至于為什么 s = 1 沒有錯我認為沒有必要深入研究,你既然發現了這個事實,那么知道就行了,也許Java的設計者當初對它做了特殊處理。
總結
以上是生活随笔為你收集整理的java short =_java short类型取值范围与用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 教程 - 【超详细】从零开始部署网站——
- 下一篇: PTA乙级1048