我對Java中的變量類型有疑問。 如果我有一個長變量(稱爲x)和一個int變量(稱爲y), (x/y)的類型是什麼?數學操作後的變量類型
我試過使用「instanceof」選項,但它沒有幫助我。
IMO它很長,但我只是想確定。提前致謝!
我對Java中的變量類型有疑問。 如果我有一個長變量(稱爲x)和一個int變量(稱爲y), (x/y)的類型是什麼?數學操作後的變量類型
我試過使用「instanceof」選項,但它沒有幫助我。
IMO它很長,但我只是想確定。提前致謝!
A long/int
是long
由於擴大規則,這基本上是任何兩個值的結果是其中任何一個範圍的「最寬」。 byte
,short
和char
類型在任何使用其他編號的操作中被轉換爲int
。 (但不是像String + char
一個字符串)
注:long % int
也是long
即使它不可能是一個int
的範圍之外同樣int/long
是long
即使它只能是在int
的範圍
注2:int * int
仍然是int
,即使存在溢流的可能性很大。
您只能在對象實例上使用instanceof
。基元不是實例。
您可能會發現這些方法有用
public static void main(String... ignored) {
System.out.println("2/1L is " + toString(2/1L));
}
public static String toString(boolean b) {
return "boolean " + b;
}
public static String toString(byte b) {
return "byte " + b;
}
public static String toString(char x) {
return "char " + x;
}
public static String toString(short x) {
return "short " + x;
}
public static String toString(int x) {
return "int " + x;
}
public static String toString(long x) {
return "long " + x;
}
public static String toString(float x) {
return "float " + x;
}
public static String toString(double x) {
return "double " + x;
}
打印
2/1L is long 2
@ user3623297我已更新我的答案。 –
下面是一些文檔.. http://docs.oracle.com/javase/specs/jls/se7 /html/jls-5.html#jls-5.1.2 –