2017-08-04 128 views

回答

1

看看在official documentationSystem.out.println可以接受很多的参数,因为你传递-1和这有int类型,然后叫你的情况的方法是public void println(int x)

虽然在幕后,但-1根据平台的默认字符编码转换为String然后转换为字节表示形式,然后发送到控制台。

4

如果按照documentation,你会发现:

公共无效的println(INT X)

打印整数,然后终止该行。此方法表现得好像调用了print(int),然后是println()

然后print(int)文档说:

通过String.valueOf(int生成的字符串)根据平台的默认字符编码翻译成字节,这些字节被写入到write(int)方法完全相同的方式进行。

因此它将整数转换为一个字符串,然后将其转换为字节并打印出来。

3

Java是否将-1视为整数或字符串?

都没有。 -1是一个原始的int文字。

为什么-1是原始的int文字?

INT:默认情况下,int数据类型是一个32位有符号的二进制补码整数,其具有-2 最小值和2 -1的最大值。

另外:

整数常量可通过这些号码系统中表达:

  • 十进制:基座10,其通过数字9由数字0的;这是您每天使用的号码系统
  • 十六进制:基数16,其数字由数字0到9和字母A到F
  • 二进制:基数2,其数字由数字0和1组成您可以创建在Java SE 7二进制文字及更高版本)

Primitive Data Types

+0

为什么-1是一个原语会更好一点,只是为了表明它仅限于一小部分数字。 (以消除混淆是否是否定的,或所有的数字......) –

+0

你的编辑更好:)现在我更喜欢这个答案了。 –

1

其实是technical-它既不。整数特定于java中的Integer对象(如ArrayList<Integer>)Integer对象与int不同。 您的打印语句将参数视为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 
相关问题