System.out.println(-1)的输出是Integer还是String?

时间:2017-08-04 13:53:32

标签: java

当我们写:

System.out.println(-1);

Java是否将-1视为IntegerString

4 个答案:

答案 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及更高版本中创建二进制文字)
  •   

请参阅Primitive Data Types

答案 2 :(得分:1)

看看official documentationSystem.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