Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java打印输出时会发生什么情况?_Java_Printing_System.out - Fatal编程技术网

用Java打印输出时会发生什么情况?

用Java打印输出时会发生什么情况?,java,printing,system.out,Java,Printing,System.out,谁能解释一下,下面这一行到底发生了什么 java.lang.System.out.print("string" + i); 它将打印“string”,后跟integeri的值,但这里发生了什么 这行的每个部分的意义是什么?“string”+i正在执行字符串连接,例如,创建一个包含string123内容的新字符串 java.lang.System.out.print(通常缩写为System.out.print)然后将该字符串写入“标准输出”-通常是运行程序的控制台。java.lang是包,正确的

谁能解释一下,下面这一行到底发生了什么

java.lang.System.out.print("string" + i);
它将打印“string”,后跟integer
i
的值,但这里发生了什么

这行的每个部分的意义是什么?

“string”+i
正在执行字符串连接,例如,创建一个包含
string123
内容的新字符串


java.lang.System.out.print
(通常缩写为
System.out.print
)然后将该字符串写入“标准输出”-通常是运行程序的控制台。

java.lang
是包,正确的
import
语句不需要它
System
java.lang
包中的一个类
out
系统
类中的一个静态公共字段(不需要绑定实例,如全局变量),其类型为
PrintStream

PrintStream将功能添加到另一个输出流,即 能够方便地打印各种数据值的表示形式。 还提供了另外两个特性。与其他输出流不同, PrintStream从不抛出IOException;相反,例外 情况只是设置了一个内部标志,可以通过 checkError方法。可选地,可以创建打印流,以便 自动冲洗;这意味着flush方法是自动执行的 在写入字节数组后调用,其中一个println方法是 调用,或写入换行符或字节('\n')

这个
PrintStream
在后台连接到一个
OutputStream
,它可以连接到IDE输出或控制台输出(通过Java本机接口)

print
方法
“string”+i
的参数使用
+
运算符连接成一个大字符串,可以直接输入到print方法
i
是一种基本的
int
类型,因此在连接期间会在内存中临时转换为
String
。至于幕后的字符串串联优化:

一个实现可以选择在一个步骤中执行转换和连接,以避免创建一个 中间字符串对象。以提高重复的性能 字符串连接,Java编译器可以使用StringBuffer类 (§20.13)或减少中间产物数量的类似技术 通过表达式求值创建的字符串对象

对于基本对象,实现还可以通过直接从 将基元类型转换为字符串


java.lang.System
是驻留在
java.lang
包中的
System
类的限定名。您正在请求其方法
print
,该方法假定获取
String
值作为参数。调用该方法时,会将括号中的结果对象(转换为字符串)发送到默认输出(通常是控制台)。

来自:

Java语言为字符串连接运算符(+)以及其他对象到字符串的转换提供了特殊支持。字符串连接是通过StringBuilder(或StringBuffer)类及其append方法实现的。字符串转换是通过toString方法实现的,该方法由Object定义并由Java中的所有类继承。有关字符串连接和转换的更多信息,请参阅Gosling、Joy和Steele,Java语言规范

所以
“string”+i
变成:

new StringBuilder("string").append(i).toString();

然后传递到
System.out.print()

这是一种方法,它将在命令行上显示消息,还有另一种方法可以在窗口中显示消息,请编写:

JOptionPane.showMassageDialog(null,"your message");

你读一些Java教程怎么样?这不是程序设计question@Guillaume-公平地说,这是一个编程问题,OP在提问之前应该对它进行一些研究。使用标准约定
i
是一个整数,但规则实际上并不要求它。可能
objecti=newobject(){publicstringtostring(){throw newruntimeexception();}