当我们写:
System.out.println(-1);
Java是否将-1
视为Integer
或String
?
答案 0 :(得分:4)
如果您按照documentation进行操作,则会发现:
public void println(int x)
打印一个整数,然后终止该行。此方法的行为就像调用
print(int)
然后调用println()
。
然后print(int)
文档说:
String.valueOf(int
生成的字符串根据平台的默认字符编码转换为字节,这些字节的编写方式与write(int)
方法完全相同。
因此,在将整数转换为字节并将其打印出来之前,它会将整数转换为字符串。
答案 1 :(得分:3)
Java是否将-1视为整数或字符串?
都不是。 -1
是一个原始的int
字面值。
为什么-1
是一个原始的int literal?
int:默认情况下,int数据类型是32位带符号的二进制补码整数,其最小值为-2 31 ,最大值为2 31 -1。
此外:
整数文字可以用这些数字系统表示:
- 十进制:基数为10,其数字由数字0到9组成;这是您每天使用的号码系统
- 十六进制:Base 16,其数字由数字0到9和字母A到F
组成- Binary:Base 2,其数字由数字0和1组成(您可以在Java SE 7及更高版本中创建二进制文字)
答案 2 :(得分:1)
看看official documentation:System.out.println
可以接受很多参数,并且由于您传递了-1
并且它有int
类型,在您的情况下调用的方法是public void println(int x)
。
在幕后,-1
转换为String
然后转换为字节表示,根据您平台的默认字符编码,然后发送到控制台。
答案 3 :(得分:1)
实际上,要技术性 - 它既不是。 Integer特定于java中的Integer对象(如ArrayList<Integer>
中所示)Integer对象与int不同。 您的print语句将参数视为int。
ArrayList<Integer> integers = new ArrayList<Integer> ();
integers.add(FooIntegerObject);
System.out.print(-1); //is an int
System.out.print("-1"); //is a String
System.out.print(integers(0).toString()); //is an Integer